- ARM 32-bit
210 %IF BINCOUNT&3 = 0 %START
tst r3, #3
bne .L43
211 BREC(BINCOUNT>>2) = HOLD
bic r3, r3, #3
add r3, r2, r3
str r0, [r3, #16]
212 CHECK = CHECK!!HOLD
ldr r3, [r2, #228]
eor r3, r3, r0
str r3, [r2, #228]
213 HOLD = 0
mov r3, #0
str r3, [r2, #12]
.L43:
214 %FINISH
- ARM 64-bit
210 %IF BINCOUNT&3 = 0 %START
tst x0, 3
bne .L15
211 BREC(BINCOUNT>>2) = HOLD
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
and x0, x0, 4294967292
add x0, x1, x0
str w2, [x0, 20]
212 CHECK = CHECK!!HOLD
ldr w0, [x1, 232]
eor w0, w0, w2
str w0, [x1, 232]
213 HOLD = 0
str wzr, [x1, 12]
.L15:
214 %FINISH
- (Side-by-side diff of 32- and 64-bit ARM)
210 %IF BINCOUNT&3 = 0 %START 210 %IF BINCOUNT&3 = 0 %START
tst r3, #3 | tst x0, 3
bne .L43 | bne .L15
211 BREC(BINCOUNT>>2) = HOLD 211 BREC(BINCOUNT>>2) = HOLD
bic r3, r3, #3 | adrp x1, .LANCHOR0
add r3, r2, r3 | add x1, x1, :lo12:.LANCHO
str r0, [r3, #16] | and x0, x0, 4294967292
> add x0, x1, x0
> str w2, [x0, 20]
212 CHECK = CHECK!!HOLD 212 CHECK = CHECK!!HOLD
ldr r3, [r2, #228] | ldr w0, [x1, 232]
eor r3, r3, r0 | eor w0, w0, w2
str r3, [r2, #228] | str w0, [x1, 232]
213 HOLD = 0 213 HOLD = 0
mov r3, #0 | str wzr, [x1, 12]
str r3, [r2, #12] <
214 %FINISH 214 %FINISH
- Intel 32-bit
210 %IF BINCOUNT&3 = 0 %START
testb $3, %cl
jne .L18
211 BREC(BINCOUNT>>2) = HOLD
shrl $2, %ecx
movl %eax, -4+BREC.8451@GOTOFF(%edx,%ecx,4)
212 CHECK = CHECK!!HOLD
xorl %eax, CHECK.8425@GOTOFF(%edx)
213 HOLD = 0
movl $0, HOLD.8542@GOTOFF(%edx)
.L18:
214 %FINISH
- Intel 64-bit
210 %IF BINCOUNT&3 = 0 %START
testb $3, %al
jne .L14
211 BREC(BINCOUNT>>2) = HOLD
shrl $2, %eax
cltq
leaq -4+BREC.92(%rip), %rdx
movl %edi, (%rdx,%rax,4)
212 CHECK = CHECK!!HOLD
xorl %edi, CHECK.91(%rip)
213 HOLD = 0
movl $0, HOLD.52(%rip)
214 %FINISH
215 %END
216
.L14:
- (Side-by-side diff of 32- and 64-bit Intel)
210 %IF BINCOUNT&3 = 0 %START 210 %IF BINCOUNT&3 = 0 %START
testb $3, %cl | testb $3, %al
jne .L18 | jne .L14
211 BREC(BINCOUNT>>2) = HOLD 211 BREC(BINCOUNT>>2) = HOLD
shrl $2, %ecx | shrl $2, %eax
movl %eax, -4+BREC.8451@GO | cltq
> leaq -4+BREC.92(%rip), %rd
> movl %edi, (%rdx,%rax,4)
212 CHECK = CHECK!!HOLD 212 CHECK = CHECK!!HOLD
xorl %eax, CHECK.8425@GOTO | xorl %edi, CHECK.91(%rip)
213 HOLD = 0 213 HOLD = 0
movl $0, HOLD.8542@GOTOFF( | movl $0, HOLD.52(%rip)
.L18: | .L14:
214 %FINISH 214 %FINISH