Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(277)

Side by Side Diff: src/arm/code-stubs-arm.cc

Issue 2816703002: [arm] Remove embedded constant pool support. (Closed)
Patch Set: [arm] Remove embedded constant pool support. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm/assembler-arm-inl.h ('k') | src/arm/deoptimizer-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #if V8_TARGET_ARCH_ARM 5 #if V8_TARGET_ARCH_ARM
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 8
9 #include "src/api-arguments.h" 9 #include "src/api-arguments.h"
10 #include "src/assembler-inl.h" 10 #include "src/assembler-inl.h"
(...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 __ cmp(cp, Operand(0)); 976 __ cmp(cp, Operand(0));
977 __ str(cp, MemOperand(fp, StandardFrameConstants::kContextOffset), ne); 977 __ str(cp, MemOperand(fp, StandardFrameConstants::kContextOffset), ne);
978 978
979 // Compute the handler entry address and jump to it. 979 // Compute the handler entry address and jump to it.
980 ConstantPoolUnavailableScope constant_pool_unavailable(masm); 980 ConstantPoolUnavailableScope constant_pool_unavailable(masm);
981 __ mov(r1, Operand(pending_handler_code_address)); 981 __ mov(r1, Operand(pending_handler_code_address));
982 __ ldr(r1, MemOperand(r1)); 982 __ ldr(r1, MemOperand(r1));
983 __ mov(r2, Operand(pending_handler_offset_address)); 983 __ mov(r2, Operand(pending_handler_offset_address));
984 __ ldr(r2, MemOperand(r2)); 984 __ ldr(r2, MemOperand(r2));
985 __ add(r1, r1, Operand(Code::kHeaderSize - kHeapObjectTag)); // Code start 985 __ add(r1, r1, Operand(Code::kHeaderSize - kHeapObjectTag)); // Code start
986 if (FLAG_enable_embedded_constant_pool) {
987 __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r1);
988 }
989 __ add(pc, r1, r2); 986 __ add(pc, r1, r2);
990 } 987 }
991 988
992 989
993 void JSEntryStub::Generate(MacroAssembler* masm) { 990 void JSEntryStub::Generate(MacroAssembler* masm) {
994 // r0: code entry 991 // r0: code entry
995 // r1: function 992 // r1: function
996 // r2: receiver 993 // r2: receiver
997 // r3: argc 994 // r3: argc
998 // [sp+0]: argv 995 // [sp+0]: argv
(...skipping 23 matching lines...) Expand all
1022 offset_to_argv += kNumDoubleCalleeSaved * kDoubleSize; 1019 offset_to_argv += kNumDoubleCalleeSaved * kDoubleSize;
1023 __ ldr(r4, MemOperand(sp, offset_to_argv)); 1020 __ ldr(r4, MemOperand(sp, offset_to_argv));
1024 1021
1025 // Push a frame with special values setup to mark it as an entry frame. 1022 // Push a frame with special values setup to mark it as an entry frame.
1026 // r0: code entry 1023 // r0: code entry
1027 // r1: function 1024 // r1: function
1028 // r2: receiver 1025 // r2: receiver
1029 // r3: argc 1026 // r3: argc
1030 // r4: argv 1027 // r4: argv
1031 StackFrame::Type marker = type(); 1028 StackFrame::Type marker = type();
1032 if (FLAG_enable_embedded_constant_pool) {
1033 __ mov(r8, Operand::Zero());
1034 }
1035 __ mov(r7, Operand(StackFrame::TypeToMarker(marker))); 1029 __ mov(r7, Operand(StackFrame::TypeToMarker(marker)));
1036 __ mov(r6, Operand(StackFrame::TypeToMarker(marker))); 1030 __ mov(r6, Operand(StackFrame::TypeToMarker(marker)));
1037 __ mov(r5, 1031 __ mov(r5,
1038 Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate()))); 1032 Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate())));
1039 __ ldr(r5, MemOperand(r5)); 1033 __ ldr(r5, MemOperand(r5));
1040 __ mov(ip, Operand(-1)); // Push a bad frame pointer to fail if it is used. 1034 __ mov(ip, Operand(-1)); // Push a bad frame pointer to fail if it is used.
1041 __ stm(db_w, sp, r5.bit() | r6.bit() | r7.bit() | 1035 __ stm(db_w, sp, r5.bit() | r6.bit() | r7.bit() |
1042 (FLAG_enable_embedded_constant_pool ? r8.bit() : 0) |
1043 ip.bit()); 1036 ip.bit());
1044 1037
1045 // Set up frame pointer for the frame to be pushed. 1038 // Set up frame pointer for the frame to be pushed.
1046 __ add(fp, sp, Operand(-EntryFrameConstants::kCallerFPOffset)); 1039 __ add(fp, sp, Operand(-EntryFrameConstants::kCallerFPOffset));
1047 1040
1048 // If this is the outermost JS call, set js_entry_sp value. 1041 // If this is the outermost JS call, set js_entry_sp value.
1049 Label non_outermost_js; 1042 Label non_outermost_js;
1050 ExternalReference js_entry_sp(Isolate::kJSEntrySPAddress, isolate()); 1043 ExternalReference js_entry_sp(Isolate::kJSEntrySPAddress, isolate());
1051 __ mov(r5, Operand(ExternalReference(js_entry_sp))); 1044 __ mov(r5, Operand(ExternalReference(js_entry_sp)));
1052 __ ldr(r6, MemOperand(r5)); 1045 __ ldr(r6, MemOperand(r5));
(...skipping 1944 matching lines...) Expand 10 before | Expand all | Expand 10 after
2997 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, 2990 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
2998 kStackUnwindSpace, NULL, return_value_operand, NULL); 2991 kStackUnwindSpace, NULL, return_value_operand, NULL);
2999 } 2992 }
3000 2993
3001 #undef __ 2994 #undef __
3002 2995
3003 } // namespace internal 2996 } // namespace internal
3004 } // namespace v8 2997 } // namespace v8
3005 2998
3006 #endif // V8_TARGET_ARCH_ARM 2999 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm-inl.h ('k') | src/arm/deoptimizer-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698