Index: linux_syscall_support.h |
=================================================================== |
--- linux_syscall_support.h (revision 28) |
+++ linux_syscall_support.h (working copy) |
@@ -2566,6 +2566,7 @@ |
#define LSS_REG(r,a) register unsigned long __r##r __asm__("$"#r) = \ |
(unsigned long)(a) |
#undef LSS_BODY |
+ #if _MIPS_SIM == _MIPS_SIM_ABI32 |
#define LSS_BODY(type,name,r7,...) \ |
register unsigned long __v0 __asm__("$2") = __NR_##name; \ |
__asm__ __volatile__ ("syscall\n" \ |
@@ -2575,6 +2576,16 @@ |
"$13", "$14", "$15", "$24", "$25", \ |
"memory"); \ |
LSS_RETURN(type, __v0, __r7) |
+ #else |
+ #define LSS_BODY(type,name,r7,...) \ |
+ register unsigned long __v0 __asm__("$2") = __NR_##name; \ |
+ __asm__ __volatile__ ("syscall\n" \ |
+ : "+r"(__v0), r7 (__r7) \ |
+ : "0"(__v0), ##__VA_ARGS__ \ |
+ : "$10", "$11", "$12", "$13", "$14", \ |
Mark Seaborn
2014/07/12 23:58:08
So, you're only changing the list of clobbered reg
Lei Zhang
2014/07/14 19:39:28
Disclaimer: I've never worked on this before. So i
petarj
2014/07/16 02:23:24
breakpad does not support mips64 yet.
Lei Zhang
2014/07/16 23:42:07
Done.
|
+ "$15", "$24", "$25", "memory"); \ |
+ LSS_RETURN(type, __v0, __r7) |
+ #endif |
#undef _syscall0 |
#define _syscall0(type, name) \ |
type LSS_NAME(name)(void) { \ |