| 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 <limits.h> // For LONG_MIN, LONG_MAX. | 5 #include <limits.h> // For LONG_MIN, LONG_MAX. |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_ARM | 7 #if V8_TARGET_ARCH_ARM |
| 8 | 8 |
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
| 10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
| (...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 656 CheckPageFlag(js_function, scratch, | 656 CheckPageFlag(js_function, scratch, |
| 657 MemoryChunk::kPointersFromHereAreInterestingMask, eq, &done); | 657 MemoryChunk::kPointersFromHereAreInterestingMask, eq, &done); |
| 658 | 658 |
| 659 const Register dst = scratch; | 659 const Register dst = scratch; |
| 660 add(dst, js_function, Operand(offset - kHeapObjectTag)); | 660 add(dst, js_function, Operand(offset - kHeapObjectTag)); |
| 661 | 661 |
| 662 push(code_entry); | 662 push(code_entry); |
| 663 | 663 |
| 664 // Save caller-saved registers, which includes js_function. | 664 // Save caller-saved registers, which includes js_function. |
| 665 DCHECK((kCallerSaved & js_function.bit()) != 0); | 665 DCHECK((kCallerSaved & js_function.bit()) != 0); |
| 666 DCHECK_EQ(kCallerSaved & code_entry.bit(), 0); | 666 DCHECK_EQ(kCallerSaved & code_entry.bit(), 0u); |
| 667 stm(db_w, sp, (kCallerSaved | lr.bit())); | 667 stm(db_w, sp, (kCallerSaved | lr.bit())); |
| 668 | 668 |
| 669 int argument_count = 3; | 669 int argument_count = 3; |
| 670 PrepareCallCFunction(argument_count, code_entry); | 670 PrepareCallCFunction(argument_count, code_entry); |
| 671 | 671 |
| 672 mov(r0, js_function); | 672 mov(r0, js_function); |
| 673 mov(r1, dst); | 673 mov(r1, dst); |
| 674 mov(r2, Operand(ExternalReference::isolate_address(isolate()))); | 674 mov(r2, Operand(ExternalReference::isolate_address(isolate()))); |
| 675 | 675 |
| 676 { | 676 { |
| (...skipping 3317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3994 } | 3994 } |
| 3995 } | 3995 } |
| 3996 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); | 3996 if (mag.shift > 0) mov(result, Operand(result, ASR, mag.shift)); |
| 3997 add(result, result, Operand(dividend, LSR, 31)); | 3997 add(result, result, Operand(dividend, LSR, 31)); |
| 3998 } | 3998 } |
| 3999 | 3999 |
| 4000 } // namespace internal | 4000 } // namespace internal |
| 4001 } // namespace v8 | 4001 } // namespace v8 |
| 4002 | 4002 |
| 4003 #endif // V8_TARGET_ARCH_ARM | 4003 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |