- 15 Jul, 2011 4 commits
-
-
mstarzinger@chromium.org authored
R=danno@chromium.org BUG=v8:1559 TEST=test262 Review URL: http://codereview.chromium.org/7368005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=ager@chromium.org BUG=1543 TEST= Review URL: http://codereview.chromium.org/7369001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
TEST=build/gyp_v8 --generator-output=testbuild/ Review URL: http://codereview.chromium.org/7384006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
by replicating changes to SConscript from r8654 to cctest.gyp TEST=cctest compiles with gyp/make. Review URL: http://codereview.chromium.org/7371006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jul, 2011 9 commits
-
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7351017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
BUG=1560 TEST=mjsunit/regress/regress-1560.js Review URL: http://codereview.chromium.org/7366008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7366009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
This allows running cctest from anywhere. I was to rename single-letter variables in my script due to an encountered issue in JSMin (http://code.google.com/p/v8/issues/detail?id=1557). R=svenpanne@chromium.org,sgjesse@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7354027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
While implementing structured clone I found that I need support for detecting and creating objects using the builtin Number, String and Boolean constructors; this CL adds this support. I also need to be able to detect entities of "native object type (e.g., Error)", hence the new IsNativeError() calls. (ref: http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-passing-of-structured-data) Patch by Luke Zarko. Review URL: http://codereview.chromium.org/7344013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7366004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
* src/hydrogen-instructions.h (HClampToUint8): Don't mark as having flexible representation; instead the output is always an Integer32. There is no input representation restriction, so we can still perform input-specific truncation. I tested by looking at the --print-code of var a = PixelArray(1000000) function fill(a,x) { for (var i=0; i<a.len; i++) a[i] = x; } Seems to optimize fine both for double and integer inputs. But perhaps there is a better test, for which the original code does better, and this is a bogus patch. Review URL: http://codereview.chromium.org/7357003 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
We did not dispose the semaphores used in SourceGroup Review URL: http://codereview.chromium.org/7366002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Harmonize naming a bit, x64 was the only platform where Register::from_code was called Register::toRegister. Review URL: http://codereview.chromium.org/7364001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jul, 2011 18 commits
-
-
danno@chromium.org authored
BUG=none TEST=bot greeness Review URL: http://codereview.chromium.org/7357002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
BUG=none TEST=windows build bot works Review URL: http://codereview.chromium.org/7342048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
* src/hydrogen.cc (HInferRepresentation::Analyze): Fix iterative loop over phis; the shortcutting behavior of || appears to be accidental here, causing O(n^2) convergence. Not that it matters much, but hey! While I'm at it, a minor comment fix: * src/hydrogen-instructions.h (EnsureAndPropagateNotMinusZero): Fix a comment about the kinds of instructions that propagate to multiple inputs. BUG= TEST=passes tools/test.py Review URL: http://codereview.chromium.org/7350019 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Implemented on ia32, x64, ARM. Stubbed out with UNIMPLEMENTED on MIPS. BUG=none TEST=unbox-double-arrays.js Review URL: http://codereview.chromium.org/7307030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/7354021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
Invalid loop nesting causes full cleanup of the prototype transitions cache on every GC. R=ager@chromium.org Review URL: http://codereview.chromium.org/7354020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
R=svenpanne@chromium.org BUG=v8:1140 TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-double.js Review URL: http://codereview.chromium.org//7343005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/7356011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Fix bug in compilation of calls with proxy receivers. R=kmillikin@chromium.org,ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7237050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
The only usage of it was in logging tests, I've switched them for using a file. I've left out support for "--logfile=*" for now, as Chromium uses it. Will be removed after the next V8 roll. R=sgjesse@chromium.org BUG=859 TEST=mjsunit/log-* Review URL: http://codereview.chromium.org/7310025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/7351014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Using a C++-style method PrintName (a.k.a. << ;-), things get a lot easier when two unrelated concerns are separated. Stubs don't need a name cache anymore, simpler code while generating the stub name, memory allocation is centralized, etc. Review URL: http://codereview.chromium.org/7342042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=kmillikin@chromium.org,ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7321004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
R=sgjesse@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7353015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Now V8_NO_FAST_TLS needs to be defined to switch off fast tls access on platform which supports it. R=ager@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7350017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This patch just adds a nop after the call to the binary operation stub in optimized code to avoid the patching for the inlined smi case used in the full code generator to kick in if the next instruction generated by the lithium code generator should accidentially enable that. For calls generated by CallCodeGeneric this was already handled on Intel platforms, but missing on ARM. On IA-32 I did also try to check for whether the code containing the call was optimized (patch below), but that caused regressions on some benchmarks. diff --git src/ia32/ic-ia32.cc src/ia32/ic-ia32.cc index 5f143b1..f70e208 100644 --- src/ia32/ic-ia32.cc +++ src/ia32/ic-ia32.cc @@ -1603,12 +1603,18 @@ void CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) { // Activate inlined smi code. if (previous_state == UNINITIALIZED) { - PatchInlinedSmiCode(address()); + PatchInlinedSmiCode(address(), isolate()); } } -void PatchInlinedSmiCode(Address address) { +void PatchInlinedSmiCode(Address address, Isolate* isolate) { + // Never patch in optimized code. + Code* code = isolate->pc_to_code_cache()->GetCacheEntry(address)->code; + if (code->kind() == Code::OPTIMIZED_FUNCTION) { + return; + } + // The address of the instruction following the call. Address test_instruction_address = address + Assembler::kCallTargetAddressOffset; diff --git src/ic.cc src/ic.cc index f70f75a..62e79da 100644 --- src/ic.cc +++ src/ic.cc @@ -2384,7 +2384,7 @@ RUNTIME_FUNCTION(MaybeObject*, BinaryOp_Patch) { // Activate inlined smi code. if (previous_type == BinaryOpIC::UNINITIALIZED) { - PatchInlinedSmiCode(ic.address()); + PatchInlinedSmiCode(ic.address(), isolate); } } diff --git src/ic.h src/ic.h index 11c2e3a..9ef4b20 100644 --- src/ic.h +++ src/ic.h @@ -721,7 +721,7 @@ class CompareIC: public IC { }; // Helper for BinaryOpIC and CompareIC. -void PatchInlinedSmiCode(Address address); +void PatchInlinedSmiCode(Address address, Isolate* isolate); } } // namespace v8::internal R=danno@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7350015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
The preprocessor defines ENABLE_LOGGING_AND_PROFILING and ENABLE_VMSTATE_TRACKING has been removed as these where required to be turned on for Crankshaft to work. To re-enable reducing the binary size by leaving out heap and CPU profiler a new set of defines needs to be created. R=ager@chromium.org BUG=v8:1271 TEST=all Review URL: http://codereview.chromium.org//7350014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jul, 2011 3 commits
-
-
yangguo@chromium.org authored
R=vegorov@chromium.org TEST=cctest/test-dictionary Review URL: http://codereview.chromium.org/7349005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
ZoneAllocationPolicy::New is not inlined anymore because this pulls in far too much stuff and doesn't really make any measurable performance difference. And no, the #includes are still not in alphabetical order... ;-) Review URL: http://codereview.chromium.org/7346006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Also remove some dead code. Review URL: http://codereview.chromium.org/7334008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jul, 2011 6 commits
-
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/7334010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This provides more precise source to generated code mapping as variable loads can be handled using IC calls. R=kmillikin@chromium.org BUG=v8:1527 TEST=test/message/regress/regress-1527 Review URL: http://codereview.chromium.org//7327038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/7333010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Declaration of const lookup slots would trigger an assertion if there was a setter somewhere in the prototype chain, and that setter was shadowed by a non-readonly data property also in the prototype chain. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7324048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
It does not currently work and when it did work we never got it fast enough to be useful. R=kmillikin@chromium.org Review URL: http://codereview.chromium.org/7324051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG=http://code.google.com/p/v8/issues/detail?id=1533 Review URL: http://codereview.chromium.org/7335007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-