I used the following command to execute some AArch64 instructions contained in test.bin:
qemu-system-aarch64 -cpu cortex-a57 -M virt -m 128M -nographic -s -S -kernel test.bin
But QEMU hanged up while executing floating point instructions.
The following AArch64 instruction block is contained in test.bin (disassembled in aarch64-none-elf-gdb):
0x0000000040081000: mov x0, #0xa // #10
0x0000000040081004: mov x1, #0xb // #11
0x0000000040081008: fmov d0, x0
0x000000004008100c: fmov d1, x1
I debugged it with "aarch64-none-elf-gdb" and found that the first two integer mov instructions were successfully executed by qemu-system-aarch64.
But QEMU hanged up at the 3rd intruction "fmov d0, x0", with one host CPU core usage 100%.
Then I tested other floating point AArch64 instructions like "fabs" and "fadd", QEMU hanged up at all of them.
I am using the latest version of QEMU built from the git repo, under Ubuntu 14.04 64-bit. Also tried several early QEMU versions but none worked.
What did I miss?