I could reproduce Flandry Illegal instruction error.
gdb tells me the error happens @0x0072f37c
(gdb) disassemble 0x72f370 0x72f37f
Dump of assembler code from 0x72f370 to 0x72f37f:
0x0072f370 <floor+7473708>: mov r0, r4
0x0072f374 <floor+7473712>: bl 0x6fcaec <floor+7266728>
0x0072f378 <floor+7473716>: vldr s15, [r6, #52]
0x0072f37c <floor+7473720>: vcmp.f32 s15, #0.0
(gdb) info registers r6
r6 0x500b237 83931703
Looks bad, 0x0072f378 is doing an unaligned load... But the kernel is configured to fix that up, and the memory @r6 is accessible.
Also as far as I know the vcmp instruction is valid.
To sum up I don't know what the issue is
I'll rebuild with symbols.
EDIT: I forgot to say that the executable runs fine on the QEMU ARM provided with the SDK. No big surprise, QEMU isn't that accurate
EDIT 2: I found the issue. Even though the kernel should fixup alignment issues, it fails to recognize the vldr instruction as a load instruction. So MAME will have to be fixed not to generate such loads
For info the offending line is 1029 in sdlmame0136/src/emu/video.c.