OLD | NEW |
---|---|
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC | 5 #if V8_TARGET_ARCH_PPC |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1238 // Argument 8 (r10): Indicate that this is a direct call from JavaScript. | 1238 // Argument 8 (r10): Indicate that this is a direct call from JavaScript. |
1239 __ li(r10, Operand(1)); | 1239 __ li(r10, Operand(1)); |
1240 | 1240 |
1241 // Argument 7 (r9): Start (high end) of backtracking stack memory area. | 1241 // Argument 7 (r9): Start (high end) of backtracking stack memory area. |
1242 ExternalReference address_of_regexp_stack_memory_address = | 1242 ExternalReference address_of_regexp_stack_memory_address = |
1243 ExternalReference::address_of_regexp_stack_memory_address(isolate()); | 1243 ExternalReference::address_of_regexp_stack_memory_address(isolate()); |
1244 ExternalReference address_of_regexp_stack_memory_size = | 1244 ExternalReference address_of_regexp_stack_memory_size = |
1245 ExternalReference::address_of_regexp_stack_memory_size(isolate()); | 1245 ExternalReference::address_of_regexp_stack_memory_size(isolate()); |
1246 __ mov(r11, Operand(address_of_regexp_stack_memory_address)); | 1246 __ mov(r11, Operand(address_of_regexp_stack_memory_address)); |
1247 __ LoadP(r11, MemOperand(r11, 0)); | 1247 __ LoadP(r11, MemOperand(r11, 0)); |
1248 __ mov(r12, Operand(address_of_regexp_stack_memory_size)); | 1248 __ mov(ip, Operand(address_of_regexp_stack_memory_size)); |
jgruber
2017/03/17 07:15:49
Out of curiosity, is ip not the instruction pointe
john.yan
2017/03/17 13:48:41
ip on ppc/s390 is the Inter Procedural register.
| |
1249 __ LoadP(r12, MemOperand(r12, 0)); | 1249 __ LoadP(ip, MemOperand(ip, 0)); |
1250 __ add(r9, r11, r12); | 1250 __ add(r9, r11, ip); |
1251 | 1251 |
1252 // Argument 6 (r8): Set the number of capture registers to zero to force | 1252 // Argument 6 (r8): Set the number of capture registers to zero to force |
1253 // global egexps to behave as non-global. This does not affect non-global | 1253 // global egexps to behave as non-global. This does not affect non-global |
1254 // regexps. | 1254 // regexps. |
1255 __ li(r8, Operand::Zero()); | 1255 __ li(r8, Operand::Zero()); |
1256 | 1256 |
1257 // Argument 5 (r7): static offsets vector buffer. | 1257 // Argument 5 (r7): static offsets vector buffer. |
1258 __ mov( | 1258 __ mov( |
1259 r7, | 1259 r7, |
1260 Operand(ExternalReference::address_of_static_offsets_vector(isolate()))); | 1260 Operand(ExternalReference::address_of_static_offsets_vector(isolate()))); |
(...skipping 1915 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3176 fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize); | 3176 fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize); |
3177 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, | 3177 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, |
3178 kStackUnwindSpace, NULL, return_value_operand, NULL); | 3178 kStackUnwindSpace, NULL, return_value_operand, NULL); |
3179 } | 3179 } |
3180 | 3180 |
3181 #undef __ | 3181 #undef __ |
3182 } // namespace internal | 3182 } // namespace internal |
3183 } // namespace v8 | 3183 } // namespace v8 |
3184 | 3184 |
3185 #endif // V8_TARGET_ARCH_PPC | 3185 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |