whesse@chromium.org
b6ebcd58c6
Crankshaft: Move LEnvironment and LPointerMap classes to platform-independent lithium.h. Move WriteTranslation method from LEnvironment class to LCodeGen class.
...
Review URL: http://codereview.chromium.org/6142011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:51:08 +00:00
fschneider@chromium.org
b85538bc16
Introduce two more template parameter for Lithium instructions for input and temp operands.
...
Each LInstruction is now a subclass of LTemplateInstruction<R, I, T>
where R is number of outputs, I number of inputs and T number of temps.
This change only actually uses the parameter I for input operands.
Since the parameter T for temps is 0, it incurs no extra cost.
A separate change will introduce using the temps parameter.
Review URL: http://codereview.chromium.org/6215002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:47:34 +00:00
peter.rybin@gmail.com
7c468e53c4
Add fine-grained diff implementation to LiveEdit engine.
...
BUG=1013
TEST=
Review URL: http://codereview.chromium.org/6017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:55:47 +00:00
fschneider@chromium.org
c1d4d89a31
Remove unused Temp() function form LChunkBuilder.
...
Review URL: http://codereview.chromium.org/6217003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:38:13 +00:00
karlklose@chromium.org
43b0399505
Implement DoApplyArguments.
...
ARM: Implement DoApplyArguments in the lithium code generator.
This patch also introduces an optional SafepointGenerator argument to InvokeFunction, InvokeCode and InvokeProloque.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:11:03 +00:00
ager@chromium.org
59c158e43f
ARM: Implement ClassOf in the lithium arm backend.
...
Review URL: http://codereview.chromium.org/6201004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:01:53 +00:00
kmillikin@chromium.org
a7c743d3ac
Reuse the gap move resolver.
...
Rather than allocating a fresh gap move resolver for every parallel
move, use a single one per Lithium code generator. This avoids always
reallocating the temporary zone-allocated lists used by the gap move
resolver.
Review URL: http://codereview.chromium.org/6128007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:50:12 +00:00
vitalyr@chromium.org
404fbb5b0b
SSE2 truncating double-to-i.
...
Review URL: http://codereview.chromium.org/6049008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:48:49 +00:00
sgjesse@chromium.org
c4550bc6d5
ARM: Add instructions VFPCompareAndSetFlags and VFPCompareAndLoadFlags to macro assembler
...
Also removed the SBit from the vcmp instruction as it is not part of the instruction.
Review URL: http://codereview.chromium.org/6117003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:45:25 +00:00
mikhail.naganov@gmail.com
ecc00e7800
Visit all roots in the UnreachableObjectsFilter.
...
If an object is only referenced from DOM wrappers, it can only
be seen if all roots are visited.
Review URL: http://codereview.chromium.org/6226004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:38:19 +00:00
mikhail.naganov@gmail.com
6f72caf92d
Add reporting of JS heap size limit to GetHeapStatistics.
...
I found it useful to know inside the heap profiler to avoid
crashes due to heap overflow.
Review URL: http://codereview.chromium.org/6111007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:36:09 +00:00
ager@chromium.org
a314fa4581
ARM: Add deferred stack overflow checks to goto code generation in ARM
...
lithium when needed.
Review URL: http://codereview.chromium.org/6192005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:32:00 +00:00
whesse@chromium.org
5d3432b530
Add source file lithium-codegen-x64.cc. Add class declarations to lithium-codegen-x64.h.
...
Review URL: http://codereview.chromium.org/6135008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:24:18 +00:00
fschneider@chromium.org
6b00bdf2f2
Fix ARM debug build by moving an assert.
...
Review URL: http://codereview.chromium.org/6127005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:20:22 +00:00
fschneider@chromium.org
9cace6b5f0
Use HIR accessor for CheckPrototypeMaps to remove the duplicate members in lithium.
...
Review URL: http://codereview.chromium.org/6221003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:10:11 +00:00
ager@chromium.org
b3d4ea357c
ARM: use existing transcendental cache stub for tagged inputs.
...
Review URL: http://codereview.chromium.org/6167004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:54:37 +00:00
erik.corry@gmail.com
544d941b09
Fix lint
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:47:30 +00:00
erik.corry@gmail.com
ff8ed6b7b6
Fix Solaris build. Patch from Ryan Dahl. See http://codereview.chromium.org/5968004/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:44:16 +00:00
fschneider@chromium.org
b9f5ab9ef1
Remove duplicate members from some LIR instruction by using the HIR accessors.
...
Remove unused LOperands from keyed-loads. We do not have multiple representations
for load instructions anymore.
Correct number of output operands as for a couple of instructions form 1 to 0
because they do not produce a result (e.g. PushArgument)
Review URL: http://codereview.chromium.org/6158004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:41:01 +00:00
whesse@chromium.org
14cb39e543
X64 Crankshaft: Add LTemplatedInstruction and some derived classes to lithium-x64.cc.
...
Review URL: http://codereview.chromium.org/6128008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:33:52 +00:00
antonm@chromium.org
a0bc9eb040
Add more bailouts for Array.slice over arguments.
...
Unfortunately, arguments is pretty much the normal JS object. For now
I am adding more sanity checks (in hope that typically arguments
list is rather short.) However it probably requires more systematic
treatment, for example, we could optimistically copy elements until
we meet first hole and in this case resort to JS builtin.
Review URL: http://codereview.chromium.org/6062006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:23:40 +00:00
sgjesse@chromium.org
bb0e35929f
Fix presubmit error - really
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6205003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:10:51 +00:00
sgjesse@chromium.org
d04c75c685
Fix presubmit error
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6206003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:03:48 +00:00
sgjesse@chromium.org
bd208976d7
Update the bits reserved for the gap size in the depotimization table
...
On ARM the a constant pool can be emitted during the gap code generation which leads to larger gap code size
BUG=v8:1018
Review URL: http://codereview.chromium.org/6125004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 19:43:38 +00:00
kmillikin@chromium.org
32254e5324
Change the hydrogen timing data to include zone allocation.
...
Review URL: http://codereview.chromium.org/6190002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 14:16:47 +00:00
ager@chromium.org
cd4ae721e2
ARM: Implement delete operation in lithium codegen.
...
I'm using the post call generator for the macro assembler
InvokeBuiltin call to be consistent with the ia32 version. It only
generates one call, but using the post call generator it should be
easier to catch if we change that at some point.
Review URL: http://codereview.chromium.org/6119004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:24:19 +00:00
fschneider@chromium.org
f89ce8159a
Split LInstruction into multiple variant to make our LIR more compact.
...
This change introduces LTemplateInstruction which is a specialized version
of LInstruction and takes one template parameter to indicate whether the
instruction produces a result operand.
All instruction that do not have a result inherit from LTemplateInstruction<0>.
Instructions that have a result operand from LTemplateInstruction<1>
All the Define* function only operate on instructions with a result.
For this to work I also refactored the places where we do
LInstruction* result = new Lxyy
into
Lxyz* result = new Lxyz
Review URL: http://codereview.chromium.org/6219001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:19:15 +00:00
sandholm@chromium.org
c260e4f731
Simplify Join and speedup joining arrays of numbers.
...
Review URL: http://codereview.chromium.org/6173004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:44:54 +00:00
whesse@chromium.org
a139094016
Crankshaft: Move LParallelMove to lithium.h, add LGap to lithium-x64.h.
...
Review URL: http://codereview.chromium.org/6132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:31:21 +00:00
kmillikin@chromium.org
3d4395bab4
Prepare push to trunk. Now working on version 3.0.8.
...
Review URL: http://codereview.chromium.org/6152002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:05:34 +00:00
ager@chromium.org
5e3381c9c7
Landing for Martyn Capewell.
...
ARM: Fix comparison of NaN values.
Enables the cumulative exception flag when comparing values, and uses it to
detect NaN results.
BUG=1023
TEST=none
Code review URL: http://codereview.chromium.org/6142004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:04:30 +00:00
sandholm@chromium.org
6dd671d6c2
Make better use of the %_FastAsciiArrayJoin function.
...
Review URL: http://codereview.chromium.org/6100005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:00:48 +00:00
ager@chromium.org
d9e5078bbc
Landing for Martin Maly.
...
Implement DoCallKeyed for arm lithium compiler.
Code review URL: http://codereview.chromium.org/6139002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:59:13 +00:00
ricow@chromium.org
cd6bd8c4fa
Revert 6220 (generic descriptor support in Object.defineOwnProperty)
...
This change caused a webkit failure in http/tests/security/xss-DENIED-defineProperty.html.
I will look into this and reapply when I find a solution.
Review URL: http://codereview.chromium.org/6134005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:20:54 +00:00
sgjesse@chromium.org
dae44fd3ee
ARM: Fix lithium codegeneration of TypeofIs
...
The previous implementation was incomplete and wrong.
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6113003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 14:27:32 +00:00
sgjesse@chromium.org
97621e7e32
ARM: Implement lithium codegen for DoTypeof, DoTypeofIs and DoSmiUntag
...
Review URL: http://codereview.chromium.org/6174001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:44:05 +00:00
sandholm@chromium.org
ba4f9faec5
Aviod double checking IS_STRING when joining arrays.
...
Review URL: http://codereview.chromium.org/5977013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:21:34 +00:00
lrn@chromium.org
90fd0ee897
Change interpretation of malformed \c? escapes in RegExp to match JSC.
...
Review URL: http://codereview.chromium.org/6171001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:35:42 +00:00
karlklose@chromium.org
e74b0ae7db
ARM: Support DoCallGlobal in lithium code generator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6094011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:34:39 +00:00
whesse@chromium.org
7c94bf13b9
Create platform-independent lithium files, move LGapResolver and LGapNode there
...
Review URL: http://codereview.chromium.org/6121001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:22 +00:00
ricow@chromium.org
08cd803827
Landing for Peter Hallam
...
First cut at bug 992
Fixes JS portion of DefineOwnProperty when there is
an existing property and the new descriptor is generic.
Makes code follow spec steps more closely.
Fixes typo for check for unchanged enumerable in step 6.
Adds regression test.
Codereview url: http://codereview.chromium.org/6035014/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:09 +00:00
ricow@chromium.org
b02ff71824
Fix win64 build (int conversion)
...
Review URL: http://codereview.chromium.org/6083014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:51:44 +00:00
sgjesse@chromium.org
426f13e084
Fix GC issue in instanceof stub
...
The the call of the builtin in InstanceofStub was not correctly protected with an internal frame leading to the return address being handled as a pointer during GC.
Marked the Instanceof stub as allowing stub calls (the RecordWriteStub was removed some days ago).
This issue was not caught by the assertion designed for this when debug mode is run with --debug-code (which out tests always does) as generating code for Abort set the allow stub calls flag to true. This has been fixed by restoring the allow stub calls flag correctly.
Review URL: http://codereview.chromium.org/6097010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:37:26 +00:00
fschneider@chromium.org
bfecc95694
Revert r6194: Clean up code for type feedback a bit.
...
This causes a big performance regression. I'll investigate.
Review URL: http://codereview.chromium.org/6172001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:36:27 +00:00
kmillikin@chromium.org
12b34fa927
Move IsArgumentsMarker from class MaybeObject to Object.
...
Since we never need to ask it of a MaybeObject, put it with the other
oddball testers in class Object for consistency.
Review URL: http://codereview.chromium.org/6138004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:06:28 +00:00
whesse@chromium.org
f39ff5c679
X64 Crankshaft: Implement some methods in LInstruction, update mjsunit test expectations.
...
Review URL: http://codereview.chromium.org/6118002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 09:47:16 +00:00
sgjesse@chromium.org
a6c5fa6993
ARM implementations of LoadElements, LoadKeyedFastElement, StoreNamedField, StoreKeyedFastElement.
...
BUG=none
TEST=none
Patch by Martyn Capewell from ARM Ltd.
Review URL: http://codereview.chromium.org/5967008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 07:33:46 +00:00
karlklose@chromium.org
1eb68a859f
Fix presubmit (r6209).
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6029012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 16:20:45 +00:00
fschneider@chromium.org
5fbaece14c
Use a separate marker value to allocate the arguments object on deoptimzation.
...
Before we used the hole value for this purpose, but this does not work once we
start using the hole value for other purposes in the optimizing compiler.
Review URL: http://codereview.chromium.org/6116001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:53:56 +00:00
karlklose@chromium.org
d4bbad8e4e
ARM: Support DoCheckInstanceType in lithium codegenerator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6040008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:25:03 +00:00