yangguo@chromium.org
d37695e30e
Fix cctests when VFP is disabled.
...
R=svenpanne@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10820027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 08:42:42 +00:00
yangguo@chromium.org
59f212e7eb
Relax requirement from VFP3 to VFP2 where possible.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10818026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 15:26:16 +00:00
yangguo@chromium.org
d525ddbed1
Fix static initializer check.
...
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10824013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 14:27:14 +00:00
yangguo@chromium.org
2c9c94bd32
Classify small functions platform-dependently.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10829009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 13:51:29 +00:00
yangguo@chromium.org
a1f0c5b16e
Add assertions to limit register count for VSTM and VLDM.
...
R=svenpanne@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10807066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 08:38:53 +00:00
danno@chromium.org
8c89cc4cab
Optimize Smi keys for KeyedLoads
...
Allows KeyeLoad/KeyedStore operations where the key is a Smi to fold the untagging of the key into the element offset calculation.
Review URL: https://chromiumcodereview.appspot.com/10735020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 11:00:33 +00:00
sanjoy@chromium.org
693c7643d2
Optimize functions on a second thread.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10807024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 18:58:23 +00:00
verwaest@chromium.org
52bfb2a18e
Moved lastadded from DescriptorArray to Map. Renamed kLastAdded to kEnumCache.
...
Review URL: https://chromiumcodereview.appspot.com/10802034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 14:45:19 +00:00
svenpanne@chromium.org
e469cc44b8
Fix compilation for ARMv5TEJ
...
BUG=
TEST=Compiling for ARMv5TEJ
Review URL: https://chromiumcodereview.appspot.com/10784013
Patch from Remi Duraffort <remi.duraffort@st.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 09:49:12 +00:00
danno@chromium.org
43d0ed048d
Implements a new API to set a function entry hook for profiling.
...
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.
Committed: https://code.google.com/p/v8/source/detail?r=12069
Committed: https://code.google.com/p/v8/source/detail?r=12083
Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 15:18:15 +00:00
verwaest@chromium.org
7cb94437cb
Remove LookupTransitionOrDescriptor altogether.
...
Review URL: https://chromiumcodereview.appspot.com/10778011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 15:26:10 +00:00
mstarzinger@chromium.org
bb9f4470c6
Fix missing tagging of stack value in finally block.
...
R=yangguo@chromium.org
BUG=chromium:137496
TEST=cctest/test-api/Regress137496
Review URL: https://chromiumcodereview.appspot.com/10787017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 13:38:17 +00:00
yangguo@chromium.org
022ba0588a
Fix transcendental cache on ARM in optimized code.
...
R=jkummerow@chromium.org
BUG=v8:2234
TEST=regress-2234.js
Review URL: https://chromiumcodereview.appspot.com/10695205
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 09:44:59 +00:00
danno@chromium.org
b1530257ab
Revert 12083: Implements a new API to set a function entry hook for profiling.
...
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10695206
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 16:33:27 +00:00
danno@chromium.org
5c8c4bec46
Implements a new API to set a function entry hook for profiling.
...
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.
Committed: https://code.google.com/p/v8/source/detail?r=12069
Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 16:18:37 +00:00
danno@chromium.org
30569cba9b
Revert 12069: Implements a new API to set a function entry hook for profiling
...
Reverted due to waterfall failures
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10704189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:59:50 +00:00
danno@chromium.org
d6edbdd436
Implements a new API to set a function entry hook for profiling.
...
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.
Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:42:39 +00:00
sanjoy@chromium.org
31027880b0
Rename LChunkBase to LChunk, LChunk to LPlatformChunk and remove some unneeded explicit constructor attributes.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10701157
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:29:14 +00:00
sanjoy@chromium.org
c1ee1b457f
Break Crankshaft into phases.
...
Crankshaft now runs by calling CreateGraph on the HGraphBuilder, then
calling Optimize and Codegen on the HGraph.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10700115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:10:34 +00:00
sanjoy@chromium.org
5765fa2546
Defer creating Handles for HConstants to the code generation phase.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10544196
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 16:17:02 +00:00
sanjoy@chromium.org
951b64d55f
Remove duplicated LChunk code.
...
Divide the LChunk class into an arch-independent LChunkBase and an
arch-dependent LChunk which inherits from LChunkBase.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10701141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:42:17 +00:00
verwaest@chromium.org
b008d99b11
Ensure that all descriptors have a valid enumeration index, and replace NextEnumIndex with LastAdded.
...
The LastAdded points to the descriptor that was last added to the array. From the descriptor we can deduce the NextEnumerationIndex. This allows us to quickly find the property that we are transitioning to, which is necessary for transition-intensive code, eg JSON parsing.
Review URL: https://chromiumcodereview.appspot.com/10695120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:26:42 +00:00
danno@chromium.org
5b2a27aad4
Fix compile errors in Visual C++ 2008.
...
R=danno@chromium.org
BUG=None
TEST=ARM compiles on VC 2008.
Review URL: https://chromiumcodereview.appspot.com/10690111
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 10:08:56 +00:00
danno@chromium.org
299a0ab1d5
Port r11344 (Try aligning unboxed double array backing store in allocation or
...
scavenge promotion.) to ARM.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10696097
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 13:33:19 +00:00
verwaest@chromium.org
45419ee145
Swap bitfield3 and backpointer.
...
Bitfield3 now has its own field, while the backpointer shares the field with the descriptor array; which will become the transition array.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10692130
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 13:31:36 +00:00
verwaest@chromium.org
d7a5b7d5e2
Separating transitions from descriptors.
...
In this design maps contain descriptor arrays, which in turn can contain transition arrays. If transitions are needed when no descriptor array is present, a descriptor array without real descriptors is inserted just so it can point at the transition array.
The transition array does not contain details about the field it transitions to. In order to weed out transitions to FIELDs from CONSTANT_FUNCTION (what used to be MAP_TRANSITION vs CONSTANT_TRANSITION), the transition needs to be followed and the details need to be looked up in the target map. CALLBACKS transitions are still easy to recognize since the transition targets are stored as an AccessorPair containing the maps, rather than the maps directly.
Currently AccessorPairs containing a transition and an accessor are shared between the descriptor array and the transition array. This simplifies lookup since we only have to look in one of both arrays. This will change in subsequent revisions, when descriptor arrays will become shared between multiple maps, since transitions cannot be shared.
Review URL: https://chromiumcodereview.appspot.com/10697015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 13:54:20 +00:00
svenpanne@chromium.org
ebff0eb7b3
Handle accessors on the prototype chain in StoreICs.
...
Made stub compiler function signatures a bit more consistent on the way.
Review URL: https://chromiumcodereview.appspot.com/10735003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-04 11:40:51 +00:00
mstarzinger@chromium.org
a90c023d5e
Allow inlining of functions containing array literals.
...
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals
Review URL: https://chromiumcodereview.appspot.com/10689005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 14:46:01 +00:00
mstarzinger@chromium.org
df35732ab2
Allow inlining of functions containing RegExp literals.
...
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals
Review URL: https://chromiumcodereview.appspot.com/10703005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 11:49:37 +00:00
verwaest@chromium.org
41560e9f5f
Separate stub types from property types.
...
Review URL: https://chromiumcodereview.appspot.com/10656018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 11:35:23 +00:00
verwaest@chromium.org
1cff0c498e
Cleaning up usage of lookup results.
...
- Ensure that IsFound() is only used when not in combination with other
checks. To do so, the default type is NONEXISTENT rather than NORMAL;
and NotFound() also resets the type to NONEXISTENT.
- Use test methods rather than .type() == A_PROPERTY_TYPE.
Review URL: https://chromiumcodereview.appspot.com/10626004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-21 15:32:52 +00:00
erik.corry@gmail.com
d31ed98428
Fix GC bug with missing handle. Bug=133618
...
Review URL: https://chromiumcodereview.appspot.com/10559083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 13:40:10 +00:00
sanjoy@chromium.org
9e4fbb45c1
One Zone per CompilationInfo.
...
The CompilationInfo record now saves a Zone, and the compiler pipeline
allocates memory from the Zone in the CompilationInfo. Before
compiling a function, we create a Zone on the stack and save a pointer
to that Zone to the CompilationInfo; which then gets picked up and
allocated from.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10534139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 08:58:41 +00:00
mstarzinger@chromium.org
b1fe586e6b
Fix optimized code caching in FastNewClosureStub.
...
This fixes a corner-case on ARM and MIPS where optimized code was not
shared immediately across closures when a function was used in several
global contexts at once.
R=ulan@chromium.org
TEST=cctest/test-compiler/OptimizedCodeSharing
Review URL: https://chromiumcodereview.appspot.com/10544205
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 13:26:43 +00:00
danno@chromium.org
d03c2374bd
Fix packed-element.js test on ARM with no snap
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10546171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 09:15:57 +00:00
yangguo@chromium.org
a075583479
Unbreak interpreted regexp.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10535164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 17:06:16 +00:00
yangguo@chromium.org
c0d2fe256b
Check for valid PC when stepping in the ARM sim debugger.
...
BUG=v8:2134
TEST=
Review URL: https://chromiumcodereview.appspot.com/10546169
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 15:04:27 +00:00
fschneider@chromium.org
bb0a2ea766
Share optimized code for closures.
...
Each SharedFunctionInfo gets an optimized code map to store
one optimized code object per context. When allocating a new
closure we consult this map and check if there is optimized code
that can be shared.
This patch is based on an original patch
by Anton Muhin (http://codereview.chromium.org/6793013/ ).
BUG=v8:2087, v8:2094
TEST=test/mjsunit/compiler/optimized-closures.js
Review URL: https://chromiumcodereview.appspot.com/10103035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 14:06:22 +00:00
yangguo@chromium.org
fb81da2e5f
ARM: Fix literal pool handling for breakpoints in debugger.
...
BUG=2177
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10449047
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 11:16:47 +00:00
yangguo@chromium.org
ce6aa5c251
Remove faster ticks for debug mode.
...
This solves the problem that code runs very slow when the debugger is enabled.
BUG=v8:2179
TEST=
Review URL: https://chromiumcodereview.appspot.com/10544135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 14:07:50 +00:00
svenpanne@chromium.org
1ea5db0ed3
Martyn Capewell <m.m.capewell@googlemail.com>
...
Review URL: https://chromiumcodereview.appspot.com/10451037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 17:26:28 +00:00
erikcorry
0418b67142
Add negative lookups to polymorphic loads in Crankshaft.
...
Review URL: http://codereview.chromium.org/10539110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:44:12 +00:00
danno@chromium.org
43a1f5e25d
Eliminate redundant smi checks
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10543094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 12:16:19 +00:00
svenpanne@chromium.org
e6f2eab7f6
Implemented StoreIC for setters.
...
Review URL: https://chromiumcodereview.appspot.com/10534091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 09:32:17 +00:00
sanjoy@chromium.org
d67e1d4fe9
AssemblerBase does not need remember a Zone. Fix this.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10546095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 16:47:08 +00:00
yangguo@chromium.org
09179b314a
Reland r11753: Fix try..finally.
...
R=ulan@chromium.org
BUG=129171
TEST=test-api/TryFinallyMessage, mjsunit/try-finally-continue.js
Review URL: https://chromiumcodereview.appspot.com/10540095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 13:18:05 +00:00
sanjoy@chromium.org
6125718f37
Remove TLS access for current Zone.
...
By passing around a Zone object explicitly we no longer need to do a
TLS access at the sites that allocate memory from the current Zone.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10534006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 12:42:31 +00:00
yangguo@chromium.org
e98fb1028b
Revert r11753.
...
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10546092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 11:21:21 +00:00
yangguo@chromium.org
1b25fb8fa9
Preserve error message during finally block in try..finally.
...
R=ulan@chromium.org
BUG=129171
TEST=test-api/TryFinallyMessage
Review URL: https://chromiumcodereview.appspot.com/10537078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 10:51:09 +00:00
verwaest@chromium.org
2b574ef580
Promoting elements transitions to their own field.
...
This is a first step towards separating all transitions from the property descriptions. If we link the property descriptions from the transition object, this will in allow the descriptor array (property descriptions) to become immutable.
Review URL: https://chromiumcodereview.appspot.com/10444055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 06:59:56 +00:00