The attached patch fixes the ret xM variant of ret. I verified that it fixes the bug.
** Patch added: "0001-arm64-Set-source-for-ret-instruction-correctly.patch" https://bugs.launchpad.net/qemu/+bug/1263747/+attachment/3934836/+files/0001-arm64-Set-source-for-ret-instruction-correctly.patch -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1263747 Title: Arm64 fails to run a binary which runs OK on real hardware Status in QEMU: New Bug description: Note this is using the not-yet-upstream aarch64 patches from: https://github.com/susematz/qemu/tree/aarch64-1.6 ---- ---- This binary: http://oirase.annexia.org/tmp/test.gz runs OK on real aarch64 hardware. It is a statically linked Linux binary which (if successful) will print "hello, world" and exit cleanly. On qemu-arm64 userspace emulator it doesn't print anything and loops forever using 100% CPU. ---- ---- The following section is only if you wish to compile this binary from source, otherwise you can ignore it. First compile OCaml from: https://github.com/ocaml/ocaml (note you have to compile it on aarch64 or in qemu, it's not possible to cross-compile). You will have to apply the one-line patch from: https://sympa.inria.fr/sympa/arc/caml-list/2013-12/msg00179.html ./configure make -j1 world.opt Then do: echo 'print_endline "hello, world"' > test.ml ./boot/ocamlrun ./ocamlopt -I stdlib stdlib.cmxa test.ml -o test ./test To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1263747/+subscriptions