summaryrefslogtreecommitdiffstats
path: root/js/src/jit/arm/Architecture-arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit/arm/Architecture-arm.h')
-rw-r--r--js/src/jit/arm/Architecture-arm.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/js/src/jit/arm/Architecture-arm.h b/js/src/jit/arm/Architecture-arm.h
index 0c47c0250..5e3db5ae2 100644
--- a/js/src/jit/arm/Architecture-arm.h
+++ b/js/src/jit/arm/Architecture-arm.h
@@ -17,7 +17,7 @@
// GCC versions 4.6 and above define __ARM_PCS_VFP to denote a hard-float
// ABI target. The iOS toolchain doesn't define anything specific here,
// but iOS always supports VFP.
-#ifdef__ARM_PCS_VFP
+#if defined(__ARM_PCS_VFP) || defined(XP_IOS)
#define JS_CODEGEN_ARM_HARDFP
#endif
@@ -114,7 +114,12 @@ class Registers
(1 << r0) |
(1 << r1) |
(1 << Registers::r2) |
- (1 << Registers::r3);
+ (1 << Registers::r3)
+#if defined(XP_IOS)
+ // per https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW4
+ | (1 << Registers::r9)
+#endif
+ ;
static const SetType NonVolatileMask =
(1 << Registers::r4) |
@@ -122,7 +127,9 @@ class Registers
(1 << Registers::r6) |
(1 << Registers::r7) |
(1 << Registers::r8) |
+#if !defined(XP_IOS)
(1 << Registers::r9) |
+#endif
(1 << Registers::r10) |
(1 << Registers::r11) |
(1 << Registers::r12) |