--- ../linux-sharp-c860+nwfpe/arch/arm/fastfpe/CPDT.S 2002-08-26 14:45:40.000000000 +0900 +++ linux/arch/arm/fastfpe/CPDT.S 2006-05-02 23:29:43.898566416 +0900 @@ -18,7 +18,7 @@ .globl CPDT_load_single CPDT_load_single: - ldr r1,[r6] +__x1: ldrt r1,[r6] and r2,r1,#0x80000000 @ r2 = sign @@ -71,8 +71,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 @@ -128,9 +128,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,#0x80000000 bics r5,r1,#0x80000000 @@ -191,7 +191,7 @@ bic r2,r2,#0x80000000 orr r1,r1,r2,lsr#8 - str r1,[r6] +__x7: strt r1,[r6] b fastfpe_next CPDT_ss_rnd_ovfl: @@ -216,7 +216,7 @@ orr r1,r1,r2,lsr#8 CPDT_ss_zero: - str r1,[r6] +__x8: strt r1,[r6] b fastfpe_next CPDT_ss_e255: @@ -231,7 +231,7 @@ CPDT_ss_inf: orr r1,r1,#0x7f000000 orr r1,r1,#0x00800000 - str r1,[r6] +__x9: strt r1,[r6] b fastfpe_next /*---------------------------------------------------------------------------*/ @@ -261,7 +261,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_rnd_ovfl: @@ -290,12 +291,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: @@ -310,7 +313,8 @@ CPDT_sd_inf: orr r1,r1,#0x7f000000 orr r1,r1,#0x00f00000 - stmia r6,{r1,r2} +__x16: strt r1,[r6],#4 +__x17: strt r2,[r6] b fastfpe_next /*---------------------------------------------------------------------------*/ @@ -329,7 +333,9 @@ add r4,r4,#16384 orr r1,r1,r4 - stmia r6,{r1-r3} +__x18: strt r1,[r6],#4 +__x19: strt r2,[r6],#4 +__x20: strt r3,[r6] b fastfpe_next CPDT_se_e0: @@ -345,13 +351,17 @@ adds r4,r4,#1 bne CPDT_se_unnormalize - 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 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: @@ -366,7 +376,9 @@ CPDT_se_inf: 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 /*---------------------------------------------------------------------------*/ @@ -385,11 +397,11 @@ ldr r3,[r2,#4] bic r3,r3,#0x80000000 orr r3,r3,r4 - str r3,[r6],#4 +__x30: strt r3,[r6],#4 ldr r3,[r2,#8] - str r3,[r6],#4 +__x31: strt r3,[r6],#4 ldr r3,[r2,#12] - str r3,[r6],#4 +__x32: strt r3,[r6],#4 add r0,r0,#1<<12 and r0,r0,#7<<12 @@ -402,14 +414,14 @@ .globl CPDT_lfm CPDT_lfm: add r2,r10,r0,lsr#8 - ldr r3,[r6],#4 +__x33: ldrt r3,[r6],#4 and r4,r3,#0x80000000 orr r3,r3,#0x80000000 str r4,[r2,#0] str r3,[r2,#4] - ldr r3,[r6],#4 +__x34: ldrt r3,[r6],#4 str r3,[r2,#8] - ldr r3,[r6],#4 +__x35: ldrt r3,[r6],#4 str r3,[r2,#12] add r0,r0,#1<<12 @@ -419,3 +431,43 @@ b fastfpe_next /*---------------------------------------------------------------------------*/ +__cpdt_user_bad: + mov pc,r9 + +.section __ex_table, "a" + .long __x1, __cpdt_user_bad + .long __x2, __cpdt_user_bad + .long __x3, __cpdt_user_bad + .long __x4, __cpdt_user_bad + .long __x5, __cpdt_user_bad + .long __x6, __cpdt_user_bad + .long __x7, __cpdt_user_bad + .long __x8, __cpdt_user_bad + .long __x9, __cpdt_user_bad + .long __x10, __cpdt_user_bad + .long __x11, __cpdt_user_bad + .long __x12, __cpdt_user_bad + .long __x13, __cpdt_user_bad + .long __x14, __cpdt_user_bad + .long __x15, __cpdt_user_bad + .long __x16, __cpdt_user_bad + .long __x17, __cpdt_user_bad + .long __x18, __cpdt_user_bad + .long __x19, __cpdt_user_bad + .long __x20, __cpdt_user_bad + .long __x21, __cpdt_user_bad + .long __x22, __cpdt_user_bad + .long __x23, __cpdt_user_bad + .long __x24, __cpdt_user_bad + .long __x25, __cpdt_user_bad + .long __x26, __cpdt_user_bad + .long __x27, __cpdt_user_bad + .long __x28, __cpdt_user_bad + .long __x29, __cpdt_user_bad + .long __x30, __cpdt_user_bad + .long __x31, __cpdt_user_bad + .long __x32, __cpdt_user_bad + .long __x33, __cpdt_user_bad + .long __x34, __cpdt_user_bad + .long __x35, __cpdt_user_bad +.previous --- ../linux-sharp-c860+nwfpe/arch/arm/kernel/entry-common.S 2002-08-26 14:39:49.000000000 +0900 +++ linux/arch/arm/kernel/entry-common.S 2006-05-03 00:04:25.822014304 +0900 @@ -130,7 +130,7 @@ ldr ip, [ip] mcr p15, 0, ip, c1, c0 @ update control register #endif - enable_irqs ip + enable_irq ip str r4, [sp, #-S_OFF]! @ push fifth arg --- ../linux-sharp-c860+nwfpe/arch/arm/kernel/entry-header.S 2002-08-26 14:45:37.000000000 +0900 +++ linux/arch/arm/kernel/entry-header.S 2006-05-03 00:04:21.872668096 +0900 @@ -108,7 +108,7 @@ .macro mask_pc, rd, rm .endm - .macro enable_irqs, temp + .macro enable_irq, temp mov \temp, #MODE_SVC msr cpsr_c, \temp .endm @@ -164,7 +164,7 @@ bic \rd, \rm, #PCMASK .endm - .macro enable_irqs, temp + .macro enable_irq, temp teqp pc, #0x00000003 .endm