about summary refs log tree commit diff
path: root/ports/sysdeps/arm
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2013-02-13 20:27:09 -0800
committerRichard Henderson <rth@twiddle.net>2013-02-28 00:17:21 -0800
commit6ccd0107f3303732409aadffc3bac0e741f1eac4 (patch)
tree43cc0865030eaaf82e34ad6911554e8dcec3610e /ports/sysdeps/arm
parent783a65c253b144cd7b500720cf37bbddaf861a03 (diff)
downloadglibc-6ccd0107f3303732409aadffc3bac0e741f1eac4.tar.gz
glibc-6ccd0107f3303732409aadffc3bac0e741f1eac4.tar.xz
glibc-6ccd0107f3303732409aadffc3bac0e741f1eac4.zip
arm: Add IT insns for thumb mode
These are ignored by the assembler in ARM mode, so by
default this has no effect on generated code.
Diffstat (limited to 'ports/sysdeps/arm')
-rw-r--r--ports/sysdeps/arm/arm-mcount.S9
-rw-r--r--ports/sysdeps/arm/dl-tlsdesc.S1
2 files changed, 3 insertions, 7 deletions
diff --git a/ports/sysdeps/arm/arm-mcount.S b/ports/sysdeps/arm/arm-mcount.S
index 6c24271396..679d042ba4 100644
--- a/ports/sysdeps/arm/arm-mcount.S
+++ b/ports/sysdeps/arm/arm-mcount.S
@@ -24,8 +24,8 @@
 
 #ifdef __thumb2__
 	.thumb
-	.syntax unified
 #endif
+	.syntax unified
 
 
 /* Use an assembly stub with a special ABI.  The calling lr has been
@@ -77,15 +77,10 @@ ENTRY(_mcount)
 	cfi_rel_offset (r3, 12)
 	cfi_rel_offset (fp, 16)
 	cfi_rel_offset (lr, 20)
-#ifdef __thumb2__
 	movs r0, fp
 	ittt ne
 	ldrne r0, [r0, #-4]
-#else
-	movs fp, fp
-	ldrne r0, [fp, #-4]
-#endif
-	movnes r1, lr
+	movsne r1, lr
 	blne __mcount_internal
 #ifdef __thumb2__
 	ldmia sp!, {r0, r1, r2, r3, fp, pc}
diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/ports/sysdeps/arm/dl-tlsdesc.S
index 66759923b0..7b4c8dfcb5 100644
--- a/ports/sysdeps/arm/dl-tlsdesc.S
+++ b/ports/sysdeps/arm/dl-tlsdesc.S
@@ -116,6 +116,7 @@ _dl_tlsdesc_dynamic:
 	ldr	r3, [r1]
 	ldr	r2, [r0, r3, lsl #3]
 	cmn	r2, #1
+	ittt	ne
 	ldrne	r3, [r1, #4]
 	addne	r3, r2, r3
 	rsbne	r0, r4, r3