OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
8 | 8 |
9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
902 HandlerFrontendFooter(name, &miss); | 902 HandlerFrontendFooter(name, &miss); |
903 return reg; | 903 return reg; |
904 } | 904 } |
905 | 905 |
906 | 906 |
907 void LoadStubCompiler::GenerateLoadField(Register reg, | 907 void LoadStubCompiler::GenerateLoadField(Register reg, |
908 Handle<JSObject> holder, | 908 Handle<JSObject> holder, |
909 FieldIndex field, | 909 FieldIndex field, |
910 Representation representation) { | 910 Representation representation) { |
911 if (!reg.is(receiver())) __ movp(receiver(), reg); | 911 if (!reg.is(receiver())) __ movp(receiver(), reg); |
912 if (kind() == Code::LOAD_IC) { | 912 LoadFieldStub stub(isolate(), field); |
913 LoadFieldStub stub(isolate(), field); | 913 GenerateTailCall(masm(), stub.GetCode()); |
914 GenerateTailCall(masm(), stub.GetCode()); | |
915 } else { | |
916 KeyedLoadFieldStub stub(isolate(), field); | |
917 GenerateTailCall(masm(), stub.GetCode()); | |
918 } | |
919 } | 914 } |
920 | 915 |
921 | 916 |
922 void LoadStubCompiler::GenerateLoadCallback( | 917 void LoadStubCompiler::GenerateLoadCallback( |
923 Register reg, | 918 Register reg, |
924 Handle<ExecutableAccessorInfo> callback) { | 919 Handle<ExecutableAccessorInfo> callback) { |
925 // Insert additional parameters into the stack frame above return address. | 920 // Insert additional parameters into the stack frame above return address. |
926 ASSERT(!scratch4().is(reg)); | 921 ASSERT(!scratch4().is(reg)); |
927 __ PopReturnAddressTo(scratch4()); | 922 __ PopReturnAddressTo(scratch4()); |
928 | 923 |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1443 // ----------------------------------- | 1438 // ----------------------------------- |
1444 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); | 1439 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); |
1445 } | 1440 } |
1446 | 1441 |
1447 | 1442 |
1448 #undef __ | 1443 #undef __ |
1449 | 1444 |
1450 } } // namespace v8::internal | 1445 } } // namespace v8::internal |
1451 | 1446 |
1452 #endif // V8_TARGET_ARCH_X64 | 1447 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |