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

Side by Side Diff: runtime/vm/assembler_arm.cc

Issue 14309004: Implement long jump in ARM and MIPS simulators. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/assembler_mips.cc » ('j') | runtime/vm/exceptions.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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" 5 #include "vm/globals.h"
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/simulator.h" 9 #include "vm/simulator.h"
10 #include "vm/runtime_entry.h" 10 #include "vm/runtime_entry.h"
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 movt(rd, value_high); 1255 movt(rd, value_high);
1256 } 1256 }
1257 add(rd, PP, ShifterOperand(LR)); 1257 add(rd, PP, ShifterOperand(LR));
1258 } 1258 }
1259 ldr(rd, Address(rd, offset_lo)); 1259 ldr(rd, Address(rd, offset_lo));
1260 } 1260 }
1261 } 1261 }
1262 1262
1263 1263
1264 void Assembler::LoadObject(Register rd, const Object& object) { 1264 void Assembler::LoadObject(Register rd, const Object& object) {
1265 // Smi's and VM heap objects are never relocated; do not use object pool. 1265 // Smis and VM heap objects are never relocated; do not use object pool.
1266 if (object.IsSmi()) { 1266 if (object.IsSmi()) {
1267 LoadImmediate(rd, reinterpret_cast<int32_t>(object.raw())); 1267 LoadImmediate(rd, reinterpret_cast<int32_t>(object.raw()));
1268 } else if (object.InVMHeap()) { 1268 } else if (object.InVMHeap()) {
1269 // Make sure that class CallPattern is able to decode this load immediate. 1269 // Make sure that class CallPattern is able to decode this load immediate.
1270 const int32_t object_raw = reinterpret_cast<int32_t>(object.raw()); 1270 const int32_t object_raw = reinterpret_cast<int32_t>(object.raw());
1271 movw(rd, Utils::Low16Bits(object_raw)); 1271 movw(rd, Utils::Low16Bits(object_raw));
1272 const uint16_t value_high = Utils::High16Bits(object_raw); 1272 const uint16_t value_high = Utils::High16Bits(object_raw);
1273 if (value_high != 0) { 1273 if (value_high != 0) {
1274 movt(rd, value_high); 1274 movt(rd, value_high);
1275 } 1275 }
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
2124 2124
2125 const char* Assembler::FpuRegisterName(FpuRegister reg) { 2125 const char* Assembler::FpuRegisterName(FpuRegister reg) {
2126 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); 2126 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters));
2127 return fpu_reg_names[reg]; 2127 return fpu_reg_names[reg];
2128 } 2128 }
2129 2129
2130 } // namespace dart 2130 } // namespace dart
2131 2131
2132 #endif // defined TARGET_ARCH_ARM 2132 #endif // defined TARGET_ARCH_ARM
2133 2133
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/assembler_mips.cc » ('j') | runtime/vm/exceptions.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698