initial checkin
This commit is contained in:
parent
4d9260872d
commit
275497f76e
1 changed files with 74 additions and 0 deletions
74
dietlibc-0.28-syscall.patch
Normal file
74
dietlibc-0.28-syscall.patch
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
2005-05--1 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
|
||||
* libcompat/syscall.S: added Herbert Poetzl's syscall(2)
|
||||
implementation for x86_64 and sparc* architectures (see
|
||||
http://vserver.13thfloor.at/Experimental/delta-diet.diff)
|
||||
|
||||
diff -NurpP --minimal dietlibc-0.28/libcompat/syscall.S dietlibc-0.28.fixed/libcompat/syscall.S
|
||||
--- dietlibc-0.28/libcompat/syscall.S 2004-03-28 10:13:43.000000000 +0200
|
||||
+++ dietlibc-0.28.fixed/libcompat/syscall.S 2005-05-01 05:47:50.000000000 +0200
|
||||
@@ -77,5 +77,65 @@ syscall:
|
||||
cmp.eq p6,p0=-1,r10
|
||||
(p6) br __error_unified_syscall
|
||||
br.ret.sptk.few rp
|
||||
+#elif (defined(__x86_64__))
|
||||
+ mov %rdi, %rax
|
||||
+ mov %rsi, %rdi
|
||||
+ mov %rdx, %rsi
|
||||
+ mov %rcx, %rdx
|
||||
+ mov %r8, %r10
|
||||
+ mov %r9, %r8
|
||||
+ mov 0x8(%rsp), %r9
|
||||
+ syscall
|
||||
+ cmp $0xfffffffffffff001,%rax
|
||||
+ jb .Lret
|
||||
+#ifdef __DYN_LIB
|
||||
+ mov %rax, %rdx
|
||||
+ call __errno_location
|
||||
+ mov %rdx, (%rax)
|
||||
+#else
|
||||
+ mov %rax, errno
|
||||
+#endif
|
||||
+ xor %rax, %rax
|
||||
+ dec %rax
|
||||
+.Lret:
|
||||
+ retq
|
||||
+#elif (defined(__sparc__) && defined(__arch64__))
|
||||
+ mov %o0, %g1
|
||||
+ mov %o1, %o0
|
||||
+ mov %o2, %o1
|
||||
+ mov %o3, %o2
|
||||
+ mov %o4, %o3
|
||||
+ mov %o5, %o4
|
||||
+ ta 0x6d
|
||||
+ bcc .Lret
|
||||
+#ifdef __DYN_LIB
|
||||
+#else
|
||||
+ neg %o0
|
||||
+ sethi %hi(errno), %g1
|
||||
+ or %g1, %lo(errno), %g2
|
||||
+ st %o0, [%g2]
|
||||
+#endif
|
||||
+ mov -1, %o0
|
||||
+.Lret:
|
||||
+ retl
|
||||
+#elif (defined(__sparc__))
|
||||
+ mov %o0, %g1
|
||||
+ mov %o1, %o0
|
||||
+ mov %o2, %o1
|
||||
+ mov %o3, %o2
|
||||
+ mov %o4, %o3
|
||||
+ mov %o5, %o4
|
||||
+ t 0x10
|
||||
+ bcc .Lret
|
||||
+#ifdef __DYN_LIB
|
||||
+#else
|
||||
+ neg %o0
|
||||
+ sethi %hi(errno), %g1
|
||||
+ or %g1, %lo(errno), %g2
|
||||
+ st %o0, [%g2]
|
||||
+#endif
|
||||
+ mov -1, %o0
|
||||
+.Lret:
|
||||
+ retl
|
||||
#endif
|
||||
.size syscall, . - syscall
|
||||
Loading…
Add table
Add a link
Reference in a new issue