On 07/07/2023 10:12, Oleksii wrote:
On Thu, 2023-07-06 at 13:18 +0200, Jan Beulich wrote:
On 19.06.2023 15:34, Oleksii Kurochko wrote:
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -29,6 +29,8 @@ ENTRY(start)
jal reset_stack
+ jal calc_phys_offset
+
tail start_xen
.section .text, "ax", %progbits
Since you call a C function, the code to save/restore a0/a1 needs to
move here (from patch 4).
Thanks. It makes sense.
It would be better to move save/restore a0/a1 ( from patch 4 )code
here.
The only one reason I didn't do that before that calc_phys_offset
doesn't touch that and it is guaranteed that it will not ( as it
doesn't have arguments )
IIUC, the calling convention requires a0/a1 to be caller saved. So even
if they are not used for arguments, such callee is still free to use
them for internal purpose.
Cheers,
--
Julien Grall