]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
linux-user: Fix register used for 6th and 7th syscall argument on aarch64
authorGuido Günther <agx@sigxcpu.org>
Fri, 2 Feb 2018 10:02:25 +0000 (11:02 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Sun, 18 Feb 2018 17:52:32 +0000 (18:52 +0100)
This unbreaks the testcase from

    http://lists.nongnu.org/archive/html/qemu-arm/2018-01/msg00514.html

Thanks to Laurent Vivier for spotting the 7th one.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Suggested-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <671eaa99f4e0bf3a58f76f9151f7cfa24662227f.1517565566.git.agx@sigxcpu.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
linux-user/host/aarch64/safe-syscall.inc.S

index 58a2329b378b4f2368fa91980ccbdbf7bfd344ff..bc1f5a97928065d42095cf0f95cdfe275b70b1c6 100644 (file)
@@ -36,7 +36,7 @@ safe_syscall_base:
         *               and return the result in x0
         * and the syscall instruction needs
         *               x8 == syscall number
-        *               x0 ... x7 == syscall arguments
+        *               x0 ... x6 == syscall arguments
         *               and returns the result in x0
         * Shuffle everything around appropriately.
         */
@@ -47,8 +47,8 @@ safe_syscall_base:
        mov     x2, x4
        mov     x3, x5
        mov     x4, x6
-       mov     x6, x7
-       ldr     x7, [sp]
+       mov     x5, x7
+       ldr     x6, [sp]
 
        /* This next sequence of code works in conjunction with the
         * rewind_if_safe_syscall_function(). If a signal is taken