--- pre/linux/arch/arm/fastfpe/CPDT.S	2006-04-23 13:14:10.000000000 +0900
+++ post/linux/arch/arm/fastfpe/CPDT.S-	2006-04-23 13:09:28.000000000 +0900
@@ -17,7 +17,7 @@
 
 	.globl	CPDT_load_single
 CPDT_load_single:
-	ldr	r1,[r6]
+__x1:	ldrt	r1,[r6]
 	
 	and	r2,r1,#0x80000000	@ r2 = sign
 	
@@ -72,8 +72,8 @@
 
 	.globl	CPDT_load_double
 CPDT_load_double:
-	ldr	r1,[r6]
-	ldr	r6,[r6,#4]
+__x2:	ldrt	r1,[r6],#4
+__x3:	ldrt	r6,[r6]
 	
 	and	r2,r1,#0x80000000	@ r2 = sign
 	
@@ -131,9 +131,9 @@
 
 	.globl	CPDT_load_extended
 CPDT_load_extended:
-	ldr	r1,[r6]
-	ldr	r3,[r6,#4]
-	ldr	r4,[r6,#8]
+__x4:	ldrt	r1,[r6],#4
+__x5:	ldrt	r3,[r6],#4
+__x6:	ldrt	r4,[r6]
 	
 	and	r2,r1,#0x8000
 	mov	r2,r2,lsl#16
@@ -188,7 +188,7 @@
 	bic	r2,r2,#0x80000000
 	orr	r1,r1,r2,lsr#8
 
-	str	r1,[r6]
+__x7:	strt	r1,[r6]
 	b	fastfpe_next
 
 CPDT_ss_e0:
@@ -202,7 +202,7 @@
 	orr	r1,r1,r2,lsr#8
 	
 CPDT_ss_zero:
-	str	r1,[r6]
+__x8:	strt	r1,[r6]
 	b	fastfpe_next
 
 CPDT_ss_e255:
@@ -216,7 +216,7 @@
 	bne	CPDT_ss_nan_special	// NaN must not become Inf
 CPDT_ss_nan_back:
 	orr	r1,r1,r2,lsr#8
-	str	r1,[r6]
+__x9:	strt	r1,[r6]
 	b	fastfpe_next
 
 CPDT_ss_nan_special:
@@ -246,7 +246,8 @@
 	mov	r2,r2,lsl#21
 	orr	r2,r2,r3,lsr#11
 	
-	stmia	r6,{r1,r2}
+__x10:	strt	r1,[r6],#4
+__x11:	strt	r2,[r6]
 	b	fastfpe_next
 
 CPDT_sd_e0:
@@ -266,12 +267,14 @@
 	mov	r2,r2,lsl#21
 	orr	r2,r2,r3,lsr#11
 	
-	stmia	r6,{r1,r2}
+__x12:	strt	r1,[r6],#4
+__x13:	strt	r2,[r6]
 	b	fastfpe_next
 
 CPDT_sd_zero:
 	mov	r2,#0
-	stmia	r6,{r1,r2}
+__x14:	strt	r1,[r6],#4
+__x15:	strt	r2,[r6]
 	b	fastfpe_next
 
 CPDT_sd_e2047:
@@ -286,7 +289,8 @@
 	orr	r1,r1,r2,lsr#11
 	mov	r2,r2,lsl#21
 	orr	r2,r2,r3,lsr#11
-	stmia	r6,{r1,r2}
+__x16:	strt	r1,[r6],#4
+__x17:	strt	r2,[r6]
 	b	fastfpe_next
 
 CPDT_sd_nan_special:
@@ -312,7 +316,9 @@
 	add	r4,r4,#16384
 	orr	r1,r4,r1,lsr#16
 	
-	stmia	r6,{r1-r3}
+__x18:	strt	r1,[r6],#4
+__x19:	strt	r2,[r6],#4
+__x20:	strt	r3,[r6]
 	b	fastfpe_next
 
 CPDT_se_e0:
@@ -329,14 +335,18 @@
 	bne	CPDT_se_unnormalize
 
 	mov	r1,r1,lsr#16
-	stmia	r6,{r1-r3}
+__x21:	strt	r1,[r6],#4
+__x22:	strt	r2,[r6],#4
+__x23:	strt	r3,[r6]
 	b	fastfpe_next
 	
 CPDT_se_zero:
 	mov	r1,r1,lsr#16
 	mov	r2,#0
 	mov	r3,#0
-	stmia	r6,{r1-r3}
+__x24:	strt	r1,[r6],#4
+__x25:	strt	r2,[r6],#4
+__x26:	strt	r3,[r6]
 	b	fastfpe_next
 
 CPDT_se_e32767:
@@ -346,7 +356,9 @@
 	mov	r1,r1,lsr#16
 	orr	r1,r1,#0x00007f00
 	orr	r1,r1,#0x000000ff
-	stmia	r6,{r1-r3}
+__x27:	strt	r1,[r6],#4
+__x28:	strt	r2,[r6],#4
+__x29:	strt	r3,[r6]
 	b	fastfpe_next
 		
 /*---------------------------------------------------------------------------*/
@@ -367,7 +379,9 @@
 	ldmia	r7,{r2-r5}
 	bic	r3,r3,#0x80000000
 	orr	r3,r3,r2
-	stmia	r6!,{r3-r5}
+__x30:	strt	r3,[r6],#4
+__x31:	strt	r4,[r6],#4
+__x32:	strt	r5,[r6],#4
 
 	subs	r1,r1,#1
 	bne	CPDT_sfm_loop
@@ -381,7 +395,9 @@
 	and	r0,r0,#7<<12
 CPDT_lfm:
 	add	r7,r10,r0,lsr#8
-	ldmia	r6!,{r3-r5}
+__x33:	ldrt	r3,[r6],#4
+__x34:	ldrt	r4,[r6],#4
+__x35:	ldrt	r5,[r6],#4
 	and	r2,r3,#0x80000000
 	cmp	r5,#0x80000000		// check if the number was 0
 	cmpne	r5,#0x7fffffff		// or inf/NaN
@@ -394,3 +410,47 @@
 	b	fastfpe_next
 	
 /*---------------------------------------------------------------------------*/
+
+	.section .fixup,"ax"
+	.align
+__f1:
+	mov	pc,r9
+	.previous
+	.section __ex_table,"a"
+	.align 3
+	.long	__x1,__f1
+	.long	__x2,__f1
+	.long	__x3,__f1
+	.long	__x4,__f1
+	.long	__x5,__f1
+	.long	__x6,__f1
+	.long	__x7,__f1
+	.long	__x8,__f1
+	.long	__x9,__f1
+	.long	__x10,__f1
+	.long	__x11,__f1
+	.long	__x12,__f1
+	.long	__x13,__f1
+	.long	__x14,__f1
+	.long	__x15,__f1
+	.long	__x16,__f1
+	.long	__x17,__f1
+	.long	__x18,__f1
+	.long	__x19,__f1
+	.long	__x20,__f1
+	.long	__x21,__f1
+	.long	__x22,__f1
+	.long	__x23,__f1
+	.long	__x24,__f1
+	.long	__x25,__f1
+	.long	__x26,__f1
+	.long	__x27,__f1
+	.long	__x28,__f1
+	.long	__x29,__f1
+	.long	__x30,__f1
+	.long	__x31,__f1
+	.long	__x32,__f1
+	.long	__x33,__f1
+	.long	__x34,__f1
+	.long	__x35,__f1
+	.previous
