37 lines
591 B
ArmAsm
37 lines
591 B
ArmAsm
|
# mach: crisv3 crisv8 crisv10 crisv32
|
||
|
# output: ffffff00\n
|
||
|
|
||
|
; A bug resulting in a non-effectual clear.b discovered running the GCC
|
||
|
; testsuite; jump actually wrote to p0.
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
|
||
|
start
|
||
|
jump 1f
|
||
|
nop
|
||
|
.p2align 8
|
||
|
1:
|
||
|
move.d y,r4
|
||
|
|
||
|
.if 0 ;0 == ..asm.arch.cris.v32
|
||
|
; There was a bug causing this insn to set special register p0
|
||
|
; (byte-clear) to 8 (low 8 bits of location after insn).
|
||
|
jump [r4+]
|
||
|
.endif
|
||
|
|
||
|
1:
|
||
|
move.d 0f,r4
|
||
|
|
||
|
; The corresponding bug would cause this insn too, to set p0.
|
||
|
jump r4
|
||
|
nop
|
||
|
quit
|
||
|
0:
|
||
|
moveq -1,r3
|
||
|
clear.b r3
|
||
|
checkr3 ffffff00
|
||
|
quit
|
||
|
|
||
|
y:
|
||
|
.dword 1b
|