X64: Enable specialized stubs for length property.
Review URL: http://codereview.chromium.org/160582 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
5470f9b132
commit
2f7f0f6ea5
@ -606,9 +606,22 @@ void LoadIC::Generate(MacroAssembler* masm, ExternalReference const& f) {
|
||||
|
||||
|
||||
void LoadIC::GenerateArrayLength(MacroAssembler* masm) {
|
||||
Generate(masm, ExternalReference(IC_Utility(kLoadIC_Miss)));
|
||||
// ----------- S t a t e -------------
|
||||
// -- rcx : name
|
||||
// -- rsp[0] : return address
|
||||
// -- rsp[8] : receiver
|
||||
// -----------------------------------
|
||||
|
||||
Label miss;
|
||||
|
||||
__ movq(rax, Operand(rsp, kPointerSize));
|
||||
|
||||
StubCompiler::GenerateLoadArrayLength(masm, rax, rdx, &miss);
|
||||
__ bind(&miss);
|
||||
StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
|
||||
}
|
||||
|
||||
|
||||
void LoadIC::GenerateFunctionPrototype(MacroAssembler* masm) {
|
||||
Generate(masm, ExternalReference(IC_Utility(kLoadIC_Miss)));
|
||||
}
|
||||
@ -650,10 +663,23 @@ void LoadIC::GenerateNormal(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void LoadIC::GenerateStringLength(MacroAssembler* masm) {
|
||||
Generate(masm, ExternalReference(IC_Utility(kLoadIC_Miss)));
|
||||
// ----------- S t a t e -------------
|
||||
// -- rcx : name
|
||||
// -- rsp[0] : return address
|
||||
// -- rsp[8] : receiver
|
||||
// -----------------------------------
|
||||
|
||||
Label miss;
|
||||
|
||||
__ movq(rax, Operand(rsp, kPointerSize));
|
||||
|
||||
StubCompiler::GenerateLoadStringLength(masm, rax, rdx, &miss);
|
||||
__ bind(&miss);
|
||||
StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool LoadIC::PatchInlinedLoad(Address address, Object* map, int offset) {
|
||||
// The address of the instruction following the call.
|
||||
Address test_instruction_address =
|
||||
|
@ -113,9 +113,6 @@ test-debug/DebuggerUnload: CRASH || FAIL
|
||||
test-debug/DebuggerHostDispatch: CRASH || FAIL
|
||||
test-debug/DebugBreakInMessageHandler: CRASH || FAIL
|
||||
test-debug/NoDebugBreakInAfterCompileMessageHandler: CRASH || FAIL
|
||||
test-api/HugeConsStringOutOfMemory: CRASH || FAIL
|
||||
test-api/OutOfMemory: CRASH || FAIL
|
||||
test-api/OutOfMemoryNested: CRASH || FAIL
|
||||
test-api/Threading: CRASH || FAIL
|
||||
test-api/Threading2: PASS || TIMEOUT
|
||||
test-api/TryCatchSourceInfo: CRASH || FAIL
|
||||
|
@ -815,10 +815,9 @@ js1_5/Regress/regress-303213: PASS || CRASH
|
||||
js1_5/extensions/regress-336410-2: CRASH
|
||||
js1_5/extensions/regress-336410-1: CRASH
|
||||
js1_5/Function/regress-338001: FAIL || CRASH
|
||||
js1_5/Array/regress-350256-01: FAIL
|
||||
js1_5/extensions/regress-371636: CRASH
|
||||
# The following failures were added when remembered sets were enabled.
|
||||
js1_5/GC/regress-203278-2: FAIL || PASS
|
||||
js1_5/GC/regress-203278-2: FAIL || PASS || CRASH
|
||||
js1_5/GC/regress-203278-3: FAIL || PASS
|
||||
js1_5/Regress/regress-280769-3: FAIL || PASS
|
||||
js1_5/Regress/regress-280769-4: CRASH || TIMEOUT
|
||||
@ -828,3 +827,4 @@ js1_5/Regress/regress-366601: FAIL
|
||||
js1_5/Regress/regress-367561-03: CRASH
|
||||
js1_5/Regress/regress-367561-01: CRASH || PASS
|
||||
ecma/Expressions/11.7.2: CRASH
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user