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

Unified Diff: runtime/vm/constants_arm64.h

Issue 243773002: Adds Runtime call stub and Dart entry stub to ARM64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/constants_arm64.h
===================================================================
--- runtime/vm/constants_arm64.h (revision 35156)
+++ runtime/vm/constants_arm64.h (working copy)
@@ -52,6 +52,13 @@
SP = 32,
ZR = 33,
+ // SPREG is used from architecture independent code. It is only ever passed to
+ // Simulator::get_register(). Calls to get_register() from architecture
+ // independent code don't include an R31Type, so if we were to define
+ // SPREG to be R31, we wouldn't be able to distinguish from ZR. Therefore we
+ // use another value, and check for it in get_register().
+ SPREG = 34,
+
// Aliases.
IP0 = R16,
IP1 = R17,
@@ -111,7 +118,6 @@
const Register TMP2 = R17;
const Register CTX = R28; // Caches current context in generated code.
const Register PP = R27; // Caches object pool pointer in generated code.
-const Register SPREG = R31; // Stack pointer register.
const Register FPREG = FP; // Frame pointer register.
const Register ICREG = R5; // IC data register.
@@ -141,8 +147,8 @@
const RegList kAbiPreservedCpuRegs =
(1 << R19) | (1 << R20) | (1 << R21) | (1 << R22) |
(1 << R23) | (1 << R24) | (1 << R25) | (1 << R26) |
- (1 << R27) | (1 << R28) | (1 << R29);
-const int kAbiPreservedCpuRegCount = 11;
+ (1 << R27) | (1 << R28);
+const int kAbiPreservedCpuRegCount = 10;
const VRegister kAbiFirstPreservedFpuReg = V8;
const VRegister kAbiLastPreservedFpuReg = V15;
const int kAbiPreservedFpuRegCount = 8;
@@ -585,6 +591,8 @@
static const int32_t kBreakPointInstruction = // hlt #kImmExceptionIsDebug.
HLT | (kImmExceptionIsDebug << kImm16Shift);
static const int kBreakPointInstructionSize = kInstrSize;
+ static const int32_t kRedirectInstruction =
+ HLT | (kImmExceptionIsRedirectedCall << kImm16Shift);
// Read one particular bit out of the instruction bits.
inline int Bit(int nr) const {

Powered by Google App Engine
This is Rietveld 408576698