我正面临浮点异常问题,我无法解释。 我的asm函数退出循环,将arm寄存器恢复到堆栈但返回时 调用函数给出一个浮点异常。 GDB告诉我,分工就是 这样做的原因,但我不知道在哪里寻找分裂 我的函数返回调用函数。 任何线索都会有所帮助。非常感谢 。
我已经从我的gdb附上了几行。
cmp r1,#0
544 @Loop end
545 bgt .L1
546 vldmia sp!, {d8-d15} @ restore VFP/Advanced SIMD
547 ldmfd sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
548 .end
(gdb) n
non_trivial_asm () at ../lib/neon_asm/non_trivial_butterfly.asm:547
547 ldmfd sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
(gdb) n
__udivsi3 ()
at /OE/angstrom/build/tmp-angstrom_2008_1/work/i686-armv7a-sdk-angstrom-linux-gn0
810 /OE/angstrom/build/tmp-angstrom_2008_1/work/i686-armv7a-sdk-angstrom-linux-g.
(gdb) n
811 in /OE/angstrom/build/tmp-angstrom_2008_1/work/i686-armv7a-sdk-angstrom-linum
(gdb)
812 in /OE/angstrom/build/tmp-angstrom_2008_1/work/i686-armv7a-sdk-angstrom-linum
(gdb)
834 in /OE/angstrom/build/tmp-angstrom_2008_1/work/i686-armv7a-sdk-angstrom-linum
(gdb)
Program received signal SIGFPE, Arithmetic exception.
0x401665b4 in raise () from /lib/libc.so.6