Index: src/compiler/arm64/linkage-arm64.cc |
diff --git a/src/compiler/arm64/linkage-arm64.cc b/src/compiler/arm64/linkage-arm64.cc |
index 036da0f1bd221668cf2db28437dd0cd7024976f0..afedefbbd161055b32ba94269bd5b2acf071f785 100644 |
--- a/src/compiler/arm64/linkage-arm64.cc |
+++ b/src/compiler/arm64/linkage-arm64.cc |
@@ -20,8 +20,15 @@ struct Arm64LinkageHelperTraits { |
static Register RuntimeCallFunctionReg() { return x1; } |
static Register RuntimeCallArgCountReg() { return x0; } |
static RegList CCalleeSaveRegisters() { |
- // TODO(dcarney): correct callee saved registers. |
- return 0; |
+ return (1 << x19.code()) | (1 << x20.code()) | (1 << x21.code()) | |
+ (1 << x22.code()) | (1 << x23.code()) | (1 << x24.code()) | |
+ (1 << x25.code()) | (1 << x26.code()) | (1 << x27.code()) | |
+ (1 << x28.code()) | (1 << x29.code()) | (1 << x30.code()); |
+ } |
+ static RegList CCalleeSaveFPRegisters() { |
+ return (1 << d8.code()) | (1 << d9.code()) | (1 << d10.code()) | |
+ (1 << d11.code()) | (1 << d12.code()) | (1 << d13.code()) | |
+ (1 << d14.code()) | (1 << d15.code()); |
} |
static Register CRegisterParameter(int i) { |
static Register register_parameters[] = {x0, x1, x2, x3, x4, x5, x6, x7}; |