FLOAT vfp_fault() { 8038e18: b480 push {r7} 8038e1a: b087 sub sp, #28 8038e1c: af00 add r7, sp, #0 volatile float v = sss.val; 8038e1e: 4b20 ldr r3, [pc, #128] ; (8038ea0 <_Z9vfp_faultv+0x88>) 8038e20: f8d3 3001 ldr.w r3, [r3, #1] 8038e24: 617b str r3, [r7, #20]
v *= sss.val2; 8038e26: 4b1e ldr r3, [pc, #120] ; (8038ea0 <_Z9vfp_faultv+0x88>) 8038e28: f8d3 3005 ldr.w r3, [r3, #5] 8038e2c: edd7 7a05 vldr s15, [r7, #20] 8038e30: ee07 3a10 vmov s14, r3 8038e34: ee67 7a87 vmul.f32 s15, s15, s14 8038e38: edc7 7a05 vstr s15, [r7, #20]
sss.val = v; 8038e3c: 697a ldr r2, [r7, #20] 8038e3e: 4b18 ldr r3, [pc, #96] ; (8038ea0 <_Z9vfp_faultv+0x88>) 8038e40: f8c3 2001 str.w r2, [r3, #1]
volatile char b = sss.val2; 8038e44: 4b16 ldr r3, [pc, #88] ; (8038ea0 <_Z9vfp_faultv+0x88>) 8038e46: f8d3 3005 ldr.w r3, [r3, #5] 8038e4a: ee07 3a90 vmov s15, r3 8038e4e: eefd 7ae7 vcvt.s32.f32 s15, s15 8038e52: edc7 7a01 vstr s15, [r7, #4] 8038e56: 793b ldrb r3, [r7, #4] 8038e58: b2db uxtb r3, r3 8038e5a: 74fb strb r3, [r7, #19]
volatile FLOAT v1 = v; 8038e5c: 697a ldr r2, [r7, #20] 8038e5e: f107 030f add.w r3, r7, #15 8038e62: 601a str r2, [r3, #0]
v1 *= sss.val; 8038e64: 4b0e ldr r3, [pc, #56] ; (8038ea0 <_Z9vfp_faultv+0x88>) 8038e66: f8d3 2001 ldr.w r2, [r3, #1] 8038e6a: 4613 mov r3, r2 8038e6c: 461a mov r2, r3 8038e6e: f107 030f add.w r3, r7, #15 8038e72: edd3 7a00 vldr s15, [r3] // FAULT HERE 8038e76: ee07 2a10 vmov s14, r2 8038e7a: ee67 7a87 vmul.f32 s15, s15, s14 8038e7e: f107 030f add.w r3, r7, #15 8038e82: edc3 7a00 vstr s15, [r3]
return v1; 8038e86: f107 030f add.w r3, r7, #15 8038e8a: 681b ldr r3, [r3, #0] 8038e8c: ee07 3a90 vmov s15, r3 } 8038e90: eeb0 0a67 vmov.f32 s0, s15 8038e94: 371c adds r7, #28 8038e96: 46bd mov sp, r7 8038e98: f85d 7b04 ldr.w r7, [sp], #4 8038e9c: 4770 bx lr
FLOAT vfp_fault() faultv+ 0x88>)
{
8038e18: b480 push {r7}
8038e1a: b087 sub sp, #28
8038e1c: af00 add r7, sp, #0
volatile float v = sss.val;
8038e1e: 4b20 ldr r3, [pc, #128] ; (8038ea0 <_Z9vfp_
8038e20: f8d3 3001 ldr.w r3, [r3, #1]
8038e24: 617b str r3, [r7, #20]
v *= sss.val2; faultv+ 0x88>)
8038e26: 4b1e ldr r3, [pc, #120] ; (8038ea0 <_Z9vfp_
8038e28: f8d3 3005 ldr.w r3, [r3, #5]
8038e2c: edd7 7a05 vldr s15, [r7, #20]
8038e30: ee07 3a10 vmov s14, r3
8038e34: ee67 7a87 vmul.f32 s15, s15, s14
8038e38: edc7 7a05 vstr s15, [r7, #20]
sss.val = v; faultv+ 0x88>)
8038e3c: 697a ldr r2, [r7, #20]
8038e3e: 4b18 ldr r3, [pc, #96] ; (8038ea0 <_Z9vfp_
8038e40: f8c3 2001 str.w r2, [r3, #1]
volatile char b = sss.val2; faultv+ 0x88>)
8038e44: 4b16 ldr r3, [pc, #88] ; (8038ea0 <_Z9vfp_
8038e46: f8d3 3005 ldr.w r3, [r3, #5]
8038e4a: ee07 3a90 vmov s15, r3
8038e4e: eefd 7ae7 vcvt.s32.f32 s15, s15
8038e52: edc7 7a01 vstr s15, [r7, #4]
8038e56: 793b ldrb r3, [r7, #4]
8038e58: b2db uxtb r3, r3
8038e5a: 74fb strb r3, [r7, #19]
volatile FLOAT v1 = v;
8038e5c: 697a ldr r2, [r7, #20]
8038e5e: f107 030f add.w r3, r7, #15
8038e62: 601a str r2, [r3, #0]
v1 *= sss.val; faultv+ 0x88>)
8038e64: 4b0e ldr r3, [pc, #56] ; (8038ea0 <_Z9vfp_
8038e66: f8d3 2001 ldr.w r2, [r3, #1]
8038e6a: 4613 mov r3, r2
8038e6c: 461a mov r2, r3
8038e6e: f107 030f add.w r3, r7, #15
8038e72: edd3 7a00 vldr s15, [r3] // FAULT HERE
8038e76: ee07 2a10 vmov s14, r2
8038e7a: ee67 7a87 vmul.f32 s15, s15, s14
8038e7e: f107 030f add.w r3, r7, #15
8038e82: edc3 7a00 vstr s15, [r3]
return v1;
8038e86: f107 030f add.w r3, r7, #15
8038e8a: 681b ldr r3, [r3, #0]
8038e8c: ee07 3a90 vmov s15, r3
}
8038e90: eeb0 0a67 vmov.f32 s0, s15
8038e94: 371c adds r7, #28
8038e96: 46bd mov sp, r7
8038e98: f85d 7b04 ldr.w r7, [sp], #4
8038e9c: 4770 bx lr