diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-08-21 04:26:01 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-08-21 04:26:01 +0000 |
commit | 4bdddc9cbfda2acc3da87f7565baca9307ab92f7 (patch) | |
tree | ddbbc7e72d72bf78d80f000163011d0c36a07aea /libpthread/nptl/sysdeps/mips/sysdep.h | |
parent | c1a6053c890d37c25fce66ffc65a4ede77093ee0 (diff) | |
download | uClibc-alpine-4bdddc9cbfda2acc3da87f7565baca9307ab92f7.tar.bz2 uClibc-alpine-4bdddc9cbfda2acc3da87f7565baca9307ab92f7.tar.xz |
Finally check in all the changes I made for NPTL library proper.
Diffstat (limited to 'libpthread/nptl/sysdeps/mips/sysdep.h')
-rw-r--r-- | libpthread/nptl/sysdeps/mips/sysdep.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/mips/sysdep.h b/libpthread/nptl/sysdeps/mips/sysdep.h index 9483d8b39..69cecae70 100644 --- a/libpthread/nptl/sysdeps/mips/sysdep.h +++ b/libpthread/nptl/sysdeps/mips/sysdep.h @@ -76,4 +76,35 @@ # define L(label) .L ## label #endif +/* Note that while it's better structurally, going back to call __syscall_error + can make things confusing if you're debugging---it looks like it's jumping + backwards into the previous fn. */ +#ifdef __PIC__ +#define PSEUDO(name, syscall_name, args) \ + .align 2; \ + 99: la t9,__syscall_error; \ + jr t9; \ + ENTRY(name) \ + .set noreorder; \ + .cpload t9; \ + li v0, SYS_ify(syscall_name); \ + syscall; \ + .set reorder; \ + bne a3, zero, 99b; \ +L(syse1): +#else +#define PSEUDO(name, syscall_name, args) \ + .set noreorder; \ + .align 2; \ + 99: j __syscall_error; \ + nop; \ + ENTRY(name) \ + .set noreorder; \ + li v0, SYS_ify(syscall_name); \ + syscall; \ + .set reorder; \ + bne a3, zero, 99b; \ +L(syse1): +#endif + #endif |