Update.
* sysdeps/ia64/memchr.S: Add .pred.rel to avoid wrong assembler warnings. * sysdeps/ia64/memccpy.S: Likewise. Patches by Jim Wilson <wilson@redhat.com>.
This commit is contained in:
parent
fc5f4a9748
commit
a1ce647f88
@ -1,5 +1,10 @@
|
||||
2000-09-09 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/ia64/memchr.S: Add .pred.rel to avoid wrong assembler
|
||||
warnings.
|
||||
* sysdeps/ia64/memccpy.S: Likewise.
|
||||
Patches by Jim Wilson <wilson@redhat.com>.
|
||||
|
||||
* sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): Use uname
|
||||
before trying to read /proc.
|
||||
Patch by Matt Wilson <msw@redhat.com>.
|
||||
|
@ -25,9 +25,9 @@
|
||||
in1: src
|
||||
in2: char
|
||||
in3: byte count
|
||||
|
||||
|
||||
This implementation assumes little endian mode (UM.be = 0).
|
||||
|
||||
|
||||
This implementation assumes that it is safe to do read ahead
|
||||
in the src block, without getting beyond its limit. */
|
||||
|
||||
@ -83,10 +83,10 @@ ENTRY(memccpy)
|
||||
.l1: // copy -dest % 8 bytes
|
||||
ld1 value = [src], 1 // value = *src++
|
||||
;;
|
||||
st1 [dest] = value, 1 // *dest++ = value
|
||||
st1 [dest] = value, 1 // *dest++ = value
|
||||
cmp.eq p6, p0 = value, char
|
||||
(p6) br.cond.spnt .foundit
|
||||
br.cloop.dptk .l1
|
||||
br.cloop.dptk .l1
|
||||
.dest_aligned:
|
||||
and sh1 = 7, src // sh1 = src % 8
|
||||
and tmp = -8, len // tmp = len & -OPSIZ
|
||||
@ -105,7 +105,7 @@ ENTRY(memccpy)
|
||||
ld8 r[1] = [asrc], 8 // r[1] = w0
|
||||
cmp.ne p6, p0 = r0, r0 ;; // clear p6
|
||||
.align 32
|
||||
.l2:
|
||||
.l2:
|
||||
(p[0]) ld8 r[0] = [asrc], 8 // r[0] = w1
|
||||
(p[MEMLAT]) shr.u tmp1[0] = r[1 + MEMLAT], sh1 // tmp1 = w0 >> sh1
|
||||
(p[MEMLAT]) shl tmp2[0] = r[0 + MEMLAT], sh2 // tmp2 = w1 << sh2
|
||||
@ -148,6 +148,7 @@ ENTRY(memccpy)
|
||||
mov ar.lc = saved_lc // restore the loop counter
|
||||
br.ret.sptk.many b0
|
||||
.gotit:
|
||||
.pred.rel "mutex" p6, p7
|
||||
(p6) mov value = val[3] // if coming from l2
|
||||
(p7) mov value = r[MEMLAT+2] // if coming from l3
|
||||
mov ar.lc = pos0[1] ;;
|
||||
@ -160,5 +161,5 @@ ENTRY(memccpy)
|
||||
mov ar.pfs = saved_pfs
|
||||
mov pr = saved_pr, -1
|
||||
mov ar.lc = saved_lc
|
||||
br.ret.sptk.many b0
|
||||
br.ret.sptk.many b0
|
||||
END(memccpy)
|
||||
|
@ -114,6 +114,7 @@ ENTRY(__memchr)
|
||||
cmp.ne p6, p0 = r0, r0 // clear p6 (p7 was already 0 when we got here)
|
||||
mov ret0 = r0 ;; // return NULL
|
||||
.foundit:
|
||||
.pred.rel "mutex" p6, p7
|
||||
(p6) adds ret0 = -1, ret0 // if we got here from l1 or l3
|
||||
(p7) add ret0 = addr[MEMLAT+2], poschr[1] // if we got here from l2
|
||||
mov pr = saved_pr, -1
|
||||
|
Loading…
x
Reference in New Issue
Block a user