pkgsrc/www/firefox31/patches/patch-media_libtheora_lib_arm_armbits.s
joerg 2cb481b56b Clang warns about implicit nullptr -> bool casts, so avoid them.
Use three register form ofo orrhi for GAS compatibility.
2015-06-02 20:04:43 +00:00

99 lines
4.7 KiB
ArmAsm

$NetBSD: patch-media_libtheora_lib_arm_armbits.s,v 1.2 2015/06/02 20:04:43 joerg Exp $
--- media/libtheora/lib/arm/armbits.s.orig 2015-04-10 13:06:36.000000000 +0000
+++ media/libtheora/lib/arm/armbits.s
@@ -15,6 +15,7 @@
;
;********************************************************************
+ .syntax unified
AREA |.text|, CODE, READONLY
; Explicitly specifying alignment here because some versions of
@@ -73,28 +74,28 @@ oc_pack_read_refill
; negative.
CMP r10,r11 ; ptr<stop => HI
CMPHI r3,#7 ; available<=24 => HI
- LDRHIB r14,[r11],#1 ; r14 = *ptr++
+ LDRBHI r14,[r11],#1 ; r14 = *ptr++
SUBHI r3,#8 ; available += 8
; (HI) Stall...
- ORRHI r2,r14,LSL r3 ; r2 = window|=r14<<32-available
+ ORRHI r2,r2,r14,LSL r3 ; r2 = window|=r14<<32-available
CMPHI r10,r11 ; ptr<stop => HI
CMPHI r3,#7 ; available<=24 => HI
- LDRHIB r14,[r11],#1 ; r14 = *ptr++
+ LDRBHI r14,[r11],#1 ; r14 = *ptr++
SUBHI r3,#8 ; available += 8
; (HI) Stall...
- ORRHI r2,r14,LSL r3 ; r2 = window|=r14<<32-available
+ ORRHI r2,r2,r14,LSL r3 ; r2 = window|=r14<<32-available
CMPHI r10,r11 ; ptr<stop => HI
CMPHI r3,#7 ; available<=24 => HI
- LDRHIB r14,[r11],#1 ; r14 = *ptr++
+ LDRBHI r14,[r11],#1 ; r14 = *ptr++
SUBHI r3,#8 ; available += 8
; (HI) Stall...
- ORRHI r2,r14,LSL r3 ; r2 = window|=r14<<32-available
+ ORRHI r2,r2,r14,LSL r3 ; r2 = window|=r14<<32-available
CMPHI r10,r11 ; ptr<stop => HI
CMPHI r3,#7 ; available<=24 => HI
- LDRHIB r14,[r11],#1 ; r14 = *ptr++
+ LDRBHI r14,[r11],#1 ; r14 = *ptr++
SUBHI r3,#8 ; available += 8
; (HI) Stall...
- ORRHI r2,r14,LSL r3 ; r2 = window|=r14<<32-available
+ ORRHI r2,r2,r14,LSL r3 ; r2 = window|=r14<<32-available
SUBS r3,r0,r3 ; r3 = available-=_bits, available<bits => GT
BLT oc_pack_read_refill_last
MOV r0,r2,LSR r0 ; r0 = window>>32-_bits
@@ -110,7 +111,7 @@ oc_pack_read_refill_last
CMP r11,r10 ; ptr<stop => LO
; If we didn't hit the end of the packet, then pull enough of the next byte to
; to fill up the window.
- LDRLOB r14,[r11] ; (LO) r14 = *ptr
+ LDRBLO r14,[r11] ; (LO) r14 = *ptr
; Otherwise, set the EOF flag and pretend we have lots of available bits.
MOVHS r14,#1 ; (HS) r14 = 1
ADDLO r10,r3,r1 ; (LO) r10 = available
@@ -189,32 +190,32 @@ oc_huff_token_decode_refill
; We can't possibly need more than 15 bits, so available must be <= 15.
; Therefore we can load at least two bytes without checking it.
CMP r2,r3 ; ptr<stop => HI
- LDRHIB r14,[r3],#1 ; r14 = *ptr++
+ LDRBHI r14,[r3],#1 ; r14 = *ptr++
RSBHI r5,r5,#24 ; (HI) available = 32-(available+=8)
RSBLS r5,r5,#32 ; (LS) r5 = 32-available
- ORRHI r4,r14,LSL r5 ; r4 = window|=r14<<32-available
+ ORRHI r4,r4,r14,LSL r5 ; r4 = window|=r14<<32-available
CMPHI r2,r3 ; ptr<stop => HI
- LDRHIB r14,[r3],#1 ; r14 = *ptr++
+ LDRBHI r14,[r3],#1 ; r14 = *ptr++
SUBHI r5,#8 ; available += 8
; (HI) Stall...
- ORRHI r4,r14,LSL r5 ; r4 = window|=r14<<32-available
+ ORRHI r4,r4,r14,LSL r5 ; r4 = window|=r14<<32-available
; We can use unsigned compares for both the pointers and for available
; (allowing us to chain condition codes) because available will never be
; larger than 32 (or we wouldn't be here), and thus 32-available will never be
; negative.
CMPHI r2,r3 ; ptr<stop => HI
CMPHI r5,#7 ; available<=24 => HI
- LDRHIB r14,[r3],#1 ; r14 = *ptr++
+ LDRBHI r14,[r3],#1 ; r14 = *ptr++
SUBHI r5,#8 ; available += 8
; (HI) Stall...
- ORRHI r4,r14,LSL r5 ; r4 = window|=r14<<32-available
+ ORRHI r4,r4,r14,LSL r5 ; r4 = window|=r14<<32-available
CMP r2,r3 ; ptr<stop => HI
MOVLS r5,#-1<<30 ; (LS) available = OC_LOTS_OF_BITS+32
CMPHI r5,#7 ; (HI) available<=24 => HI
- LDRHIB r14,[r3],#1 ; (HI) r14 = *ptr++
+ LDRBHI r14,[r3],#1 ; (HI) r14 = *ptr++
SUBHI r5,#8 ; (HI) available += 8
; (HI) Stall...
- ORRHI r4,r14,LSL r5 ; (HI) r4 = window|=r14<<32-available
+ ORRHI r4,r4,r14,LSL r5 ; (HI) r4 = window|=r14<<32-available
RSB r14,r10,#32 ; r14 = 32-n
MOV r14,r4,LSR r14 ; r14 = bits=window>>32-n
ADD r12,r12,r14 ;