Hi Vasily,

The point of the syscall.c tests is to check that registers are not being 
corrupted by our syscalls (i.e that the kernel ABI + stubs follows the calling 
convention of the architecture). For arm, this just means checking any 
registers that are not caller saved are preserved across the system calls. Not 
sure what this means for MIPS, but hopefully that clears it up?

Cheers,
Anna.

-----Original Message-----
From: Devel [mailto:[email protected]] On Behalf Of Vasily A. Sartakov
Sent: Monday, 10 October 2016 10:09 PM
To: [email protected]
Subject: [seL4] syscall.c

Greetings. 

I have moved forward to tests in my our MIPS port. Some of them work fine, but 
not all. Now I have a question about syscall.c test. What exactly we test here? 
In ARM-based part I see initialisation of 12 registers, performing syscall with 
further checking that our initialised registers have original values.
So, as far I understand, these registers should be modified in a syscall’s 
inline, thus, they should be allocated on the stack and reloaded after the end 
of syscall. Right? 
My issue here is that I have much many than 12 registers and my compiler 
chooses them randomly (for me). For example, sometimes it uses only S0-S7 with 
some T0-T9 registers, sometimes  all T0-T9 with some S0-S7 registers. Moreover, 
I cannot put more than 30 asm instructions in one inline (gcc error), thus, 
maybe I should specify proper register name here. But for that, I should be 
sure that I understand this test correct.  Can we help me? 

Thank you 


-- 
Vasily A. Sartakov
[email protected]





_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to