summaryrefslogtreecommitdiff
path: root/src/setjmp/arm
diff options
context:
space:
mode:
Diffstat (limited to 'src/setjmp/arm')
-rw-r--r--src/setjmp/arm/longjmp.S (renamed from src/setjmp/arm/longjmp.s)7
-rw-r--r--src/setjmp/arm/setjmp.S (renamed from src/setjmp/arm/setjmp.s)7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/setjmp/arm/longjmp.s b/src/setjmp/arm/longjmp.S
index 76cc2920..8df0b819 100644
--- a/src/setjmp/arm/longjmp.s
+++ b/src/setjmp/arm/longjmp.S
@@ -16,11 +16,14 @@ longjmp:
ldr r2,1f
ldr r1,[r1,r2]
+#if __ARM_ARCH < 8
tst r1,#0x260
beq 3f
+ // HWCAP_ARM_FPA
tst r1,#0x20
beq 2f
ldc p2, cr4, [ip], #48
+#endif
2: tst r1,#0x40
beq 2f
.fpu vfp
@@ -28,6 +31,8 @@ longjmp:
.fpu softvfp
.eabi_attribute 10, 0
.eabi_attribute 27, 0
+#if __ARM_ARCH < 8
+ // HWCAP_ARM_IWMMXT
2: tst r1,#0x200
beq 3f
ldcl p1, cr10, [ip], #8
@@ -36,6 +41,8 @@ longjmp:
ldcl p1, cr13, [ip], #8
ldcl p1, cr14, [ip], #8
ldcl p1, cr15, [ip], #8
+#endif
+2:
3: bx lr
.hidden __hwcap
diff --git a/src/setjmp/arm/setjmp.s b/src/setjmp/arm/setjmp.S
index 011315b7..45731d22 100644
--- a/src/setjmp/arm/setjmp.s
+++ b/src/setjmp/arm/setjmp.S
@@ -18,11 +18,14 @@ setjmp:
ldr r2,1f
ldr r1,[r1,r2]
+#if __ARM_ARCH < 8
tst r1,#0x260
beq 3f
+ // HWCAP_ARM_FPA
tst r1,#0x20
beq 2f
stc p2, cr4, [ip], #48
+#endif
2: tst r1,#0x40
beq 2f
.fpu vfp
@@ -30,6 +33,8 @@ setjmp:
.fpu softvfp
.eabi_attribute 10, 0
.eabi_attribute 27, 0
+#if __ARM_ARCH < 8
+ // HWCAP_ARM_IWMMXT
2: tst r1,#0x200
beq 3f
stcl p1, cr10, [ip], #8
@@ -38,6 +43,8 @@ setjmp:
stcl p1, cr13, [ip], #8
stcl p1, cr14, [ip], #8
stcl p1, cr15, [ip], #8
+#endif
+2:
3: bx lr
.hidden __hwcap