| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" // NOLINT | 5 #include "vm/globals.h" // NOLINT |
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
| 7 | 7 |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/cpu.h" | 9 #include "vm/cpu.h" |
| 10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
| (...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2058 return Utils::IsInt(Utils::CountOneBits(kBranchOffsetMask), offset); | 2058 return Utils::IsInt(Utils::CountOneBits(kBranchOffsetMask), offset); |
| 2059 } | 2059 } |
| 2060 | 2060 |
| 2061 | 2061 |
| 2062 int32_t Assembler::EncodeBranchOffset(int32_t offset, int32_t inst) { | 2062 int32_t Assembler::EncodeBranchOffset(int32_t offset, int32_t inst) { |
| 2063 // The offset is off by 8 due to the way the ARM CPUs read PC. | 2063 // The offset is off by 8 due to the way the ARM CPUs read PC. |
| 2064 offset -= Instr::kPCReadOffset; | 2064 offset -= Instr::kPCReadOffset; |
| 2065 | 2065 |
| 2066 if (!CanEncodeBranchOffset(offset)) { | 2066 if (!CanEncodeBranchOffset(offset)) { |
| 2067 ASSERT(!use_far_branches()); | 2067 ASSERT(!use_far_branches()); |
| 2068 Isolate::Current()->long_jump_base()->Jump( | 2068 Thread::Current()->long_jump_base()->Jump( |
| 2069 1, Object::branch_offset_error()); | 2069 1, Object::branch_offset_error()); |
| 2070 } | 2070 } |
| 2071 | 2071 |
| 2072 // Properly preserve only the bits supported in the instruction. | 2072 // Properly preserve only the bits supported in the instruction. |
| 2073 offset >>= 2; | 2073 offset >>= 2; |
| 2074 offset &= kBranchOffsetMask; | 2074 offset &= kBranchOffsetMask; |
| 2075 return (inst & ~kBranchOffsetMask) | offset; | 2075 return (inst & ~kBranchOffsetMask) | offset; |
| 2076 } | 2076 } |
| 2077 | 2077 |
| 2078 | 2078 |
| (...skipping 1593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3672 | 3672 |
| 3673 | 3673 |
| 3674 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 3674 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
| 3675 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); | 3675 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); |
| 3676 return fpu_reg_names[reg]; | 3676 return fpu_reg_names[reg]; |
| 3677 } | 3677 } |
| 3678 | 3678 |
| 3679 } // namespace dart | 3679 } // namespace dart |
| 3680 | 3680 |
| 3681 #endif // defined TARGET_ARCH_ARM | 3681 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |