From: Sam S. <sd...@gn...> - 2012-05-18 20:05:55
|
> * Jerry James <ybt...@tz...> [2012-05-18 11:39:39 -0600]: > > I finally got around to figuring out how to create an ARM VM with > qemu. I've got the upcoming Fedora 17 release running on that VM. > The problem is not in ffcall after all. The illegal instruction error > is occurring on the very last instruction of copy_loop_up_l2() in > src/ariarm.d. A disassembly with GDB shows: > > 0x00106b3c <+0>: ldm r0!, {r2, r4, r12, lr} > 0x00106b40 <+4>: stmia r1!, {r2, r4, r12, lr} > 0x00106b44 <+8>: subs r3, r3, #8 > 0x00106b48 <+12>: ldmge r0!, {r2, r4, r12, lr} > 0x00106b4c <+16>: stmiage r1!, {r2, r4, r12, lr} > 0x00106b50 <+20>: bgt 0x106b3c <copy_loop_up_l2> > 0x00106b54 <+24>: mov r0, r1 > 0x00106b58 <+28>: ldm sp!, {r4, pc}^ > > It's that last ldm instruction, at +28, that is the problem. Also, I > see this from compilation of src/ariarm.s: > ariarm.s: Assembler messages: > ariarm.s:1: Warning: ignoring attempt to redefine built-in register 'a1' > ariarm.s:2: Warning: ignoring attempt to redefine built-in register 'a2' > ariarm.s:3: Warning: ignoring attempt to redefine built-in register 'a3' > ariarm.s:4: Warning: ignoring attempt to redefine built-in register 'a4' > ariarm.s:5: Warning: ignoring attempt to redefine built-in register 'v1' > ariarm.s:6: Warning: ignoring attempt to redefine built-in register 'v2' > ariarm.s:7: Warning: ignoring attempt to redefine built-in register 'v3' > ariarm.s:8: Warning: ignoring attempt to redefine built-in register 'v4' > ariarm.s:9: Warning: ignoring attempt to redefine built-in register 'v5' > ariarm.s:10: Warning: ignoring attempt to redefine built-in register 'v6' > ariarm.s:12: Warning: ignoring attempt to redefine built-in register 'sl' > ariarm.s:13: Warning: ignoring attempt to redefine built-in register 'fp' > ariarm.s:14: Warning: ignoring attempt to redefine built-in register 'ip' > ariarm.s:15: Warning: ignoring attempt to redefine built-in register 'sp' > ariarm.s:16: Warning: ignoring attempt to redefine built-in register 'lr' > ariarm.s:17: Warning: ignoring attempt to redefine built-in register 'pc' > ariarm.s:152: Warning: s suffix on comparison instruction is deprecated > ariarm.s:1027: Warning: s suffix on comparison instruction is deprecated > ariarm.s:1032: Warning: s suffix on comparison instruction is deprecated > > I don't speak ARM assembly. Is there anybody here who does and can > give me a clue as to what to do? This is with GCC 4.7 on an armv7hl > platform. Thanks, I cannot help with the specific problem, but I will ask you to file a CLISP bug report on SF. You can disable all assembly by adding -DNO_ASM to CFLAGS (either at configure time as "./configure CFLAGS=-DNO_ASM build-no-asm" or by editing the Makefile and doing "make clean"). Please see clisp/unix/PLATFORMS for more information. -- Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000 http://www.childpsy.net/ http://openvotingconsortium.org http://jihadwatch.org http://thereligionofpeace.com http://pmw.org.il http://honestreporting.com "A pint of sweat will save a gallon of blood." -- George S. Patton |