OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
937 void LoadStubCompiler::GenerateLoadField(Register reg, | 937 void LoadStubCompiler::GenerateLoadField(Register reg, |
938 Handle<JSObject> holder, | 938 Handle<JSObject> holder, |
939 PropertyIndex field, | 939 PropertyIndex field, |
940 Representation representation) { | 940 Representation representation) { |
941 if (!reg.is(receiver())) __ movp(receiver(), reg); | 941 if (!reg.is(receiver())) __ movp(receiver(), reg); |
942 if (kind() == Code::LOAD_IC) { | 942 if (kind() == Code::LOAD_IC) { |
943 LoadFieldStub stub(isolate(), | 943 LoadFieldStub stub(isolate(), |
944 field.is_inobject(holder), | 944 field.is_inobject(holder), |
945 field.translate(holder), | 945 field.translate(holder), |
946 representation); | 946 representation); |
947 GenerateTailCall(masm(), stub.GetCode(isolate())); | 947 GenerateTailCall(masm(), stub.GetCode()); |
948 } else { | 948 } else { |
949 KeyedLoadFieldStub stub(isolate(), | 949 KeyedLoadFieldStub stub(isolate(), |
950 field.is_inobject(holder), | 950 field.is_inobject(holder), |
951 field.translate(holder), | 951 field.translate(holder), |
952 representation); | 952 representation); |
953 GenerateTailCall(masm(), stub.GetCode(isolate())); | 953 GenerateTailCall(masm(), stub.GetCode()); |
954 } | 954 } |
955 } | 955 } |
956 | 956 |
957 | 957 |
958 void LoadStubCompiler::GenerateLoadCallback( | 958 void LoadStubCompiler::GenerateLoadCallback( |
959 Register reg, | 959 Register reg, |
960 Handle<ExecutableAccessorInfo> callback) { | 960 Handle<ExecutableAccessorInfo> callback) { |
961 // Insert additional parameters into the stack frame above return address. | 961 // Insert additional parameters into the stack frame above return address. |
962 ASSERT(!scratch4().is(reg)); | 962 ASSERT(!scratch4().is(reg)); |
963 __ PopReturnAddressTo(scratch4()); | 963 __ PopReturnAddressTo(scratch4()); |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1476 // ----------------------------------- | 1476 // ----------------------------------- |
1477 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); | 1477 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); |
1478 } | 1478 } |
1479 | 1479 |
1480 | 1480 |
1481 #undef __ | 1481 #undef __ |
1482 | 1482 |
1483 } } // namespace v8::internal | 1483 } } // namespace v8::internal |
1484 | 1484 |
1485 #endif // V8_TARGET_ARCH_X64 | 1485 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |