Hi Volodymyr,

On 07/03/2019 21:04, Volodymyr Babchuk wrote:
+static void set_return(struct cpu_user_regs *regs, uint32_t ret)
+{
+    set_user_reg(regs, 0, ret);
+    set_user_reg(regs, 1, 0);
+    set_user_reg(regs, 2, 0);
+    set_user_reg(regs, 3, 0);
+    set_user_reg(regs, 4, 0);
+    set_user_reg(regs, 5, 0);
+    set_user_reg(regs, 6, 0);
+    set_user_reg(regs, 7, 0);

This does not look correct to me. From patch #2, registers 4-7 are always preserved. registers 1-3 may be preserved as well depending on the call.

More importantly, Xen is now using SMCCC interface v1.1. This means, register 0-3 are used for return values, registers 4-7 are preserved.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to