diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/ia64/sys/brk.S | 8 | ||||
-rw-r--r-- | lib/libc/ia64/sys/pipe.S | 18 | ||||
-rw-r--r-- | lib/libc/ia64/sys/sbrk.S | 9 |
3 files changed, 23 insertions, 12 deletions
diff --git a/lib/libc/ia64/sys/brk.S b/lib/libc/ia64/sys/brk.S index d325886..fee1728 100644 --- a/lib/libc/ia64/sys/brk.S +++ b/lib/libc/ia64/sys/brk.S @@ -44,12 +44,14 @@ ENTRY(brk, 1) add r14=@ltoff(minbrk),gp ;; ld8 r14=[r14] ;; ld8 r14=[r14] ;; - cmp.ltu p6,p0=in0,r14 ;; -(p6) mov in0=r14 + cmp.ltu p6,p0=r32,r14 ;; +(p6) mov r32=r14 ;; + st8 [sp]=r32 CALLSYS_ERROR(break) + ld8 r15=[sp] add r14=@ltoff(curbrk),gp ;; ld8 r14=[r14] ;; - st8 [r14]=in0 + st8 [r14]=r15 mov ret0=0 br.ret.sptk.few rp END(brk) diff --git a/lib/libc/ia64/sys/pipe.S b/lib/libc/ia64/sys/pipe.S index 0b2600c..a6413df 100644 --- a/lib/libc/ia64/sys/pipe.S +++ b/lib/libc/ia64/sys/pipe.S @@ -32,10 +32,16 @@ __FBSDID("$FreeBSD$"); #include "SYS.h" -SYSCALL(pipe) - .regstk 1,0,0,0 - st4 [in0]=ret0,4 ;; - st4 [in0]=ret1 - mov ret0=0 +ENTRY(__sys_pipe, 1) + WEAK_ALIAS(pipe, __sys_pipe) + WEAK_ALIAS(_pipe, __sys_pipe) + st8 [sp]=r32 + CALLSYS_ERROR(pipe) + ld8 r14=[sp] + ;; + st4 [r14]=ret0,4 + ;; + st4 [r14]=ret1 + mov ret0=0 br.ret.sptk.few rp -END(pipe) +END(__sys_pipe) diff --git a/lib/libc/ia64/sys/sbrk.S b/lib/libc/ia64/sys/sbrk.S index 1dc4cf2..98b5ce9 100644 --- a/lib/libc/ia64/sys/sbrk.S +++ b/lib/libc/ia64/sys/sbrk.S @@ -43,18 +43,21 @@ ENTRY(sbrk, 1) add r14 = @ltoff(curbrk), gp ;; ld8 r14 = [r14] - cmp.eq p6, p0 = in0, r0 + cmp.eq p6, p0 = r32, r0 ;; ld8 ret0 = [r14] (p6) br.ret.sptk.few rp ;; - add in0 = ret0, in0 + add r32 = ret0, r32 + ;; + st8 [sp] = r32 CALLSYS_ERROR(break) + ld8 r15 = [sp] add r14 = @ltoff(curbrk), gp ;; ld8 r14 = [r14] ;; ld8 ret0 = [r14] - st8 [r14] = in0 + st8 [r14] = r15 br.ret.sptk.few rp END(sbrk) |