danno@chromium.org
4246ac3009
Generalize calling to C++ on stub deopt
...
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.
Review URL: https://codereview.chromium.org/11635015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:06:11 +00:00
ulan@chromium.org
c4bed03342
Add ARM support to tools/grokdump.py
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11565014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:48:04 +00:00
ulan@chromium.org
4403daca1a
ARM: generate integer zero in a uniform manner.
...
ARM generated integer zero as either Operand(0, RelocInfo::NONE32), or
Operand(0), or Operand::Zero(). My change makes it use only
Operand::Zero().
This has no functional impact, it's pure cleanup.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11745030
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:43:12 +00:00
ulan@chromium.org
b73db972e2
Use RelocInfo::IsNone in a few more places.
...
I had missed some earlier.
Followup to:
https://chromiumcodereview.appspot.com/11695006/
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11742045
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:15:25 +00:00
yangguo@chromium.org
ee563d7875
MIPS: Fix ARM code for DoModI.
...
Port r13247 (4dda8131)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/11782009
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:58:52 +00:00
ulan@chromium.org
74026ea46d
MIPS: Enable type feedback for branch statement and function call
...
Port r13288 (5fa2c889)
Original commit message:
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/11801003
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:49:52 +00:00
verwaest@chromium.org
a8962e89b3
Use enum instead of bool for force_generic (MISS / MISS_FORCE_GENERIC)
...
Review URL: https://chromiumcodereview.appspot.com/11737032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:37:59 +00:00
yangguo@chromium.org
4ee20d857b
Check for read-only-ness when preparing for array sort.
...
R=verwaest@chromium.org
BUG=v8:2419
Review URL: https://chromiumcodereview.appspot.com/11759022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:24:47 +00:00
svenpanne@chromium.org
8a2cca5207
Replaced a bailout ID assertion with quadratic time complexity by a linear one.
...
This reduces the time to run our test suite in debug mode considerably (from
8:43 to 4:05 on my local workstation using 32 threads). Note that the assertion
is so fast now that it doesn't need to be hidden behind --enable-slow-asserts.
Furthermore, the bookkeeping of the set is not measurable in all our benchmarks,
so I intentionally avoided any #ifdef chaos to keep things simple.
Review URL: https://codereview.chromium.org/11745027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 12:48:18 +00:00
ulan@chromium.org
0606abbaab
Rename RelocInfo::NONE to RelocInfo::NONE32.
...
This CL only does renaming, nothing else.
Followup to:
https://chromiumcodereview.appspot.com/11695006/
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11744020
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 10:56:24 +00:00
yangguo@chromium.org
f96267aa7b
Prepare push to trunk. Now working on version 3.16.3.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11748029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 08:55:22 +00:00
ulan@chromium.org
bb96439743
Cleanup RelocInfo::NONE usage.
...
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
I'll rename NONE to NONE32 in a later CL.
This CL cleans up the RelocInfo::NONE usage by:
- Using RelocInfo::IsNone when testing for NONE-ness.
- Using NONE on 32-bit platforms (MIPS and IA32), and NONE64 on 64-bit
platforms (x64).
This cleans up the code and prevents it from evolving bugs in the future
because NONE32 and NONE64 are used in misleading ways.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11695006
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 14:20:08 +00:00
yangguo@chromium.org
ffa936927b
Fix Win64 build.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11746015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 13:16:00 +00:00
svenpanne@chromium.org
b74f1b8b4a
Synched postmortem script with not-so-recent changes.
...
Review URL: https://codereview.chromium.org/11744019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 13:11:47 +00:00
yangguo@chromium.org
e2444edd8f
Refactor out assumption that one byte strings are ascii in utf8 processing.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11725006
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 12:59:54 +00:00
svenpanne@chromium.org
252fbddc67
Improved printing of HForceRepresentation.
...
Review URL: https://codereview.chromium.org/11745011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 10:05:40 +00:00
yangguo@chromium.org
04ccb975f4
Remove InputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727004
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 09:18:01 +00:00
yangguo@chromium.org
a50259f75c
Add Makefile options to build for the Raspberry Pi (armv7=0, arm_fpu=vfp2).
...
With these Makefile changes, it is possible to build V8 on the Raspberry Pi with the following make invocation:
make native armv7=false vfp3=off hardfp=on disassembler=on console=readline snapshot=on gdbjit=on strictaliasing=off
R=danno@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11722003
Patch from Luis Reis <luis.m.reis@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 08:56:05 +00:00
svenpanne@chromium.org
840b1a37da
Fixed printing of LInstructions in the presence of optional arguments
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/11743012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 07:23:33 +00:00
yangguo@chromium.org
ddf70504cb
Relax test expectations in BootUpMemoryUse.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11738004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-02 15:00:12 +00:00
verwaest@chromium.org
537d1d89b0
Move CopyElements to the accessor of the target.
...
Review URL: https://chromiumcodereview.appspot.com/11416238
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-02 10:09:42 +00:00
yangguo@chromium.org
bccef0c712
Reland r13275 and 13276 (Remove most uses of StringInputBuffer).
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727003
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-31 11:13:50 +00:00
danno@chromium.org
45a012ec2c
Elide unnecessary context reload in generated stubs.
...
Review URL: https://codereview.chromium.org/11550005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 16:25:38 +00:00
yangguo@chromium.org
e536abb777
Handle non-constant divisor in MathFloorOfDiv, on ia32/x64
...
Zheng Liu
zheng.z.liu@intel.com
Review URL: https://chromiumcodereview.appspot.com/11624022
Patch from Zheng Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 15:52:17 +00:00
ulan@chromium.org
eb27eb0351
Enable type feedback for branch statement and function call
...
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.
Review URL: https://chromiumcodereview.appspot.com/11635046
Patch from Jay Conrod <dconrod@codeaurora.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 15:14:44 +00:00
danno@chromium.org
3526c6be98
Use EXTERNAL_REFERENCE instead of RUNTIME_ENTRY for Runtime::PerformGC and
...
CallApiFunctionAndReturn in X64
Review URL: https://codereview.chromium.org/11694008
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 14:36:55 +00:00
ulan@chromium.org
a7f9c491dc
Use VLDR instead of VMOVs from GPR when a 64-bit double can't be encoded as a VMOV immediate.
...
This requires constant blinding before it can be enabled. There are other interesting optimizations that can be added later, detailed in a TODO.
BUG=optimization
R=ulan@chromium.org ,mstarzinger@chromium.org, hwennborg@google.com
Review URL: https://chromiumcodereview.appspot.com/11191029
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 13:34:15 +00:00
danno@chromium.org
2e6a7c733b
postmortem: export kSmiShiftSize
...
Right now it's impossible to figure out from headers that smis are left shifted
by 31 bit on x64, and only then tagged.
R=erik.corry@gmail.com
Review URL: https://codereview.chromium.org/11676005
Patch from Fedor Indutny <fedor@indutny.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 13:06:08 +00:00
danno@chromium.org
17326e8746
Refactor and improve inlined double-aligned allocations
...
Change is performance neutral but generates smaller code and encapsulates double alignment in the macro-assembler rather than at the allocation site.
Review URL: https://codereview.chromium.org/11684005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 11:09:16 +00:00
ulan@chromium.org
0aee912480
Prepare push to trunk. Now working on version 3.16.2.
...
R=danno@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11675006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 15:56:02 +00:00
danno@chromium.org
9307f8ea30
Fix SSE2 debug asserts in LayoutTests
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/11675005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 15:40:34 +00:00
yangguo@chromium.org
2f821f1ed9
Revert r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11678006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 13:12:27 +00:00
yangguo@chromium.org
074038058a
Add kNumberStringCacheRootIndex into writable_roots
...
Review URL: https://chromiumcodereview.appspot.com/11660028
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 10:11:08 +00:00
yangguo@chromium.org
121f3f6020
Revert r13275 and 13276 (Remove most uses of StringInputBuffer).
...
This is due to test failures in test-mark-compact/BootUpMemoryUse.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11688003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 10:03:17 +00:00
yangguo@chromium.org
6e6140728b
Fix build warnings.
...
TBR=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11669020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-24 08:52:32 +00:00
yangguo@chromium.org
7f074acd8d
Remove most uses of StringInputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11638037
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-24 08:29:48 +00:00
vegorov@chromium.org
6b7fe028e9
Fix typo in the CheckSSE2OperandIsInt32: use bitwise not instead of integer negation.
...
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11662009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 18:16:27 +00:00
ulan@chromium.org
b64f834383
Fix x64 MathMinMax for negative untagged int32 arguments.
...
An untagged int32 has zeros in the upper half even if it is negative.
Using cmpq to compare such numbers will incorrectly ignore the sign.
BUG=164442
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11665007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:52:00 +00:00
adamk@chromium.org
d14b05a38d
Basic test for interaction of Object.observe and hidden prototypes
...
The test simply shows the current behavior, not necessarily what we
want the behavior to be.
Review URL: https://codereview.chromium.org/11635033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:40:09 +00:00
svenpanne@chromium.org
6ad15b88be
Fixed typing confusion found by GCMole
...
Review URL: https://codereview.chromium.org/11668006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 14:28:33 +00:00
svenpanne@chromium.org
9c7bb6da23
Fixed FloatingPointHelper::CheckSSE2OperandIsInt32.
...
BUG=v8:2458
Review URL: https://codereview.chromium.org/11660010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 14:01:53 +00:00
svenpanne@chromium.org
c024ba9a90
Fixed x64 disassembler for cmpb_al
...
Review URL: https://codereview.chromium.org/11666007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 13:50:17 +00:00
svenpanne@chromium.org
e6141a84eb
Added (dis-)assembler support for movmskps on ia32 and x64.
...
Review URL: https://codereview.chromium.org/11664007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 13:47:08 +00:00
yangguo@chromium.org
beec898b05
Fast-forward version 3.15.12 to 3.16.0.
...
Now working on 3.16.1.
BUG=
Review URL: https://chromiumcodereview.appspot.com/11659010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 13:44:40 +00:00
yangguo@chromium.org
ee21013534
Prepare push to trunk. Now working on version 3.15.13.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11665006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 12:33:30 +00:00
svenpanne@chromium.org
93998c58ef
Refactoring only: Use CheckSSE2OperandIsInt32 instead of copy-n-paste code.
...
Review URL: https://codereview.chromium.org/11666004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 10:19:42 +00:00
svenpanne@chromium.org
3cff9a2a4a
Refactored deopt tracing and FindOptimizedCode. Fixed a bug when printing stubs.
...
Review URL: https://codereview.chromium.org/11636046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 07:18:56 +00:00
danno@chromium.org
6323bb3e38
MIPS: ARM: fix a bug with saving lr register in GenerateSmiToDouble.
...
Port r13107 (63aea0a3)
BUG=
TEST=
Review URL: https://codereview.chromium.org/11574013
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 17:07:38 +00:00
danno@chromium.org
653a66f527
ARM: Use division instructions in lithium and stubs
...
BUG=none
TEST=Added to test/mjsunit/math-floor-of-div.js, math-floor-of-div-nosudiv.js
Review URL: https://codereview.chromium.org/11316105
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 16:31:19 +00:00
yangguo@chromium.org
a3f16f8e65
Fix several bugs in error stack trace formatting.
...
GetScriptWrapper can be called recursively:
GetScriptWrapper -> GC -> DeferredFormatStackTrace -> GetScriptWrapper
GC-unsafe code in ErrorObjectList::DeferredFormatStackTrace
Enable overwriting Error.prepareStackTrace by itself while not
causing infinity recursion when it triggers an exception.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11649037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 16:25:26 +00:00