Comment 2 for bug 1514087

Revision history for this message
Piotr (stepien-p) wrote :

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