| 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 #include <assert.h> // For assert | 5 #include <assert.h> // For assert |
| 6 #include <limits.h> // For LONG_MIN, LONG_MAX. | 6 #include <limits.h> // For LONG_MIN, LONG_MAX. |
| 7 | 7 |
| 8 #if V8_TARGET_ARCH_PPC | 8 #if V8_TARGET_ARCH_PPC |
| 9 | 9 |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 2295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2306 int num_arguments) { | 2306 int num_arguments) { |
| 2307 mov(r3, Operand(num_arguments)); | 2307 mov(r3, Operand(num_arguments)); |
| 2308 mov(r4, Operand(ext)); | 2308 mov(r4, Operand(ext)); |
| 2309 | 2309 |
| 2310 CEntryStub stub(isolate(), 1); | 2310 CEntryStub stub(isolate(), 1); |
| 2311 CallStub(&stub); | 2311 CallStub(&stub); |
| 2312 } | 2312 } |
| 2313 | 2313 |
| 2314 | 2314 |
| 2315 void MacroAssembler::TailCallExternalReference(const ExternalReference& ext, | 2315 void MacroAssembler::TailCallExternalReference(const ExternalReference& ext, |
| 2316 int num_arguments, | 2316 int num_arguments) { |
| 2317 int result_size) { | |
| 2318 // TODO(1236192): Most runtime routines don't need the number of | 2317 // TODO(1236192): Most runtime routines don't need the number of |
| 2319 // arguments passed in because it is constant. At some point we | 2318 // arguments passed in because it is constant. At some point we |
| 2320 // should remove this need and make the runtime routine entry code | 2319 // should remove this need and make the runtime routine entry code |
| 2321 // smarter. | 2320 // smarter. |
| 2322 mov(r3, Operand(num_arguments)); | 2321 mov(r3, Operand(num_arguments)); |
| 2323 JumpToExternalReference(ext); | 2322 JumpToExternalReference(ext); |
| 2324 } | 2323 } |
| 2325 | 2324 |
| 2326 | 2325 |
| 2327 void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid, int num_arguments, | 2326 void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid, |
| 2328 int result_size) { | 2327 int num_arguments) { |
| 2329 TailCallExternalReference(ExternalReference(fid, isolate()), num_arguments, | 2328 TailCallExternalReference(ExternalReference(fid, isolate()), num_arguments); |
| 2330 result_size); | |
| 2331 } | 2329 } |
| 2332 | 2330 |
| 2333 | 2331 |
| 2334 void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) { | 2332 void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) { |
| 2335 mov(r4, Operand(builtin)); | 2333 mov(r4, Operand(builtin)); |
| 2336 CEntryStub stub(isolate(), 1); | 2334 CEntryStub stub(isolate(), 1); |
| 2337 Jump(stub.GetCode(), RelocInfo::CODE_TARGET); | 2335 Jump(stub.GetCode(), RelocInfo::CODE_TARGET); |
| 2338 } | 2336 } |
| 2339 | 2337 |
| 2340 | 2338 |
| (...skipping 1953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4294 } | 4292 } |
| 4295 if (mag.shift > 0) srawi(result, result, mag.shift); | 4293 if (mag.shift > 0) srawi(result, result, mag.shift); |
| 4296 ExtractBit(r0, dividend, 31); | 4294 ExtractBit(r0, dividend, 31); |
| 4297 add(result, result, r0); | 4295 add(result, result, r0); |
| 4298 } | 4296 } |
| 4299 | 4297 |
| 4300 } // namespace internal | 4298 } // namespace internal |
| 4301 } // namespace v8 | 4299 } // namespace v8 |
| 4302 | 4300 |
| 4303 #endif // V8_TARGET_ARCH_PPC | 4301 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |