blob: 6fba41a81a00eedfac9cb9931e6ee4933cc61b1f [file] [log] [blame]
.level 1.1
.code
.align 4
; More branching instructions than you ever knew what to do with.
;
; We could/should test some of the corner cases for register and
; immediate fields. We should also check the assorted field
; selectors to make sure they're handled correctly.
branch_tests:
bl branch_tests,%r2
bl,n branch_tests,%r2
b branch_tests
b,n branch_tests
gate branch_tests,%r2
gate,n branch_tests,%r2
blr %r4,%r2
blr,n %r4,%r2
blr %r4,%r0
blr,n %r4,%r0
bv %r0(%r2)
bv,n %r0(%r2)
be 0x1234(%sr1,%r2)
be,n 0x1234(%sr1,%r2)
ble 0x1234(%sr1,%r2)
ble,n 0x1234(%sr1,%r2)
movb_tests:
movb %r4,%r26,movb_tests
movb,= %r4,%r26,movb_tests
movb,< %r4,%r26,movb_tests
movb,od %r4,%r26,movb_tests
movb,tr %r4,%r26,movb_tests
movb,<> %r4,%r26,movb_tests
movb,>= %r4,%r26,movb_tests
movb,ev %r4,%r26,movb_tests
movb_nullified_tests:
movb,n %r4,%r26,movb_tests
movb,=,n %r4,%r26,movb_tests
movb,<,n %r4,%r26,movb_tests
movb,od,n %r4,%r26,movb_tests
movb,tr,n %r4,%r26,movb_tests
movb,<>,n %r4,%r26,movb_tests
movb,>=,n %r4,%r26,movb_tests
movb,ev,n %r4,%r26,movb_tests
movib_tests:
movib 5,%r26,movib_tests
movib,= 5,%r26,movib_tests
movib,< 5,%r26,movib_tests
movib,od 5,%r26,movib_tests
movib,tr 5,%r26,movib_tests
movib,<> 5,%r26,movib_tests
movib,>= 5,%r26,movib_tests
movib,ev 5,%r26,movib_tests
movib_nullified_tests:
movib,n 5,%r26,movib_tests
movib,=,n 5,%r26,movib_tests
movib,<,n 5,%r26,movib_tests
movib,od,n 5,%r26,movib_tests
movib,tr,n 5,%r26,movib_tests
movib,<>,n 5,%r26,movib_tests
movib,>=,n 5,%r26,movib_tests
movib,ev,n 5,%r26,movib_tests
comb_tests:
comb %r0,%r4,comb_tests
comb,= %r0,%r4,comb_tests
comb,< %r0,%r4,comb_tests
comb,<= %r0,%r4,comb_tests
comb,<< %r0,%r4,comb_tests
comb,<<= %r0,%r4,comb_tests
comb,sv %r0,%r4,comb_tests
comb,od %r0,%r4,comb_tests
comb,tr %r0,%r4,comb_tests
comb,<> %r0,%r4,comb_tests
comb,>= %r0,%r4,comb_tests
comb,> %r0,%r4,comb_tests
comb,>>= %r0,%r4,comb_tests
comb,>> %r0,%r4,comb_tests
comb,nsv %r0,%r4,comb_tests
comb,ev %r0,%r4,comb_tests
comb_nullified_tests:
comb,n %r0,%r4,comb_tests
comb,=,n %r0,%r4,comb_tests
comb,<,n %r0,%r4,comb_tests
comb,<=,n %r0,%r4,comb_tests
comb,<<,n %r0,%r4,comb_tests
comb,<<=,n %r0,%r4,comb_tests
comb,sv,n %r0,%r4,comb_tests
comb,od,n %r0,%r4,comb_tests
comb,tr,n %r0,%r4,comb_tests
comb,<>,n %r0,%r4,comb_tests
comb,>=,n %r0,%r4,comb_tests
comb,>,n %r0,%r4,comb_tests
comb,>>=,n %r0,%r4,comb_tests
comb,>>,n %r0,%r4,comb_tests
comb,nsv,n %r0,%r4,comb_tests
comb,ev,n %r0,%r4,comb_tests
comib_tests:
comib 0,%r4,comib_tests
comib,< 0,%r4,comib_tests
comib,<= 0,%r4,comib_tests
comib,<< 0,%r4,comib_tests
comib,<<= 0,%r4,comib_tests
comib,sv 0,%r4,comib_tests
comib,od 0,%r4,comib_tests
comib,tr 0,%r4,comib_tests
comib,<> 0,%r4,comib_tests
comib,>= 0,%r4,comib_tests
comib,> 0,%r4,comib_tests
comib,>>= 0,%r4,comib_tests
comib,>> 0,%r4,comib_tests
comib,nsv 0,%r4,comib_tests
comib,ev 0,%r4,comb_tests
comib_nullified_tests:
comib,n 0,%r4,comib_tests
comib,=,n 0,%r4,comib_tests
comib,<,n 0,%r4,comib_tests
comib,<=,n 0,%r4,comib_tests
comib,<<,n 0,%r4,comib_tests
comib,<<=,n 0,%r4,comib_tests
comib,sv,n 0,%r4,comib_tests
comib,od,n 0,%r4,comib_tests
comib,tr,n 0,%r4,comib_tests
comib,<>,n 0,%r4,comib_tests
comib,>=,n 0,%r4,comib_tests
comib,>,n 0,%r4,comib_tests
comib,>>=,n 0,%r4,comib_tests
comib,>>,n 0,%r4,comib_tests
comib,nsv,n 0,%r4,comib_tests
comib,ev,n 0,%r4,comib_tests
addb_tests:
addb %r1,%r4,addb_tests
addb,= %r1,%r4,addb_tests
addb,< %r1,%r4,addb_tests
addb,<= %r1,%r4,addb_tests
addb,nuv %r1,%r4,addb_tests
addb,znv %r1,%r4,addb_tests
addb,sv %r1,%r4,addb_tests
addb,od %r1,%r4,addb_tests
addb,tr %r1,%r4,addb_tests
addb,<> %r1,%r4,addb_tests
addb,>= %r1,%r4,addb_tests
addb,> %r1,%r4,addb_tests
addb,uv %r1,%r4,addb_tests
addb,vnz %r1,%r4,addb_tests
addb,nsv %r1,%r4,addb_tests
addb,ev %r1,%r4,addb_tests
addb_nullified_tests:
addb,n %r1,%r4,addb_tests
addb,=,n %r1,%r4,addb_tests
addb,<,n %r1,%r4,addb_tests
addb,<=,n %r1,%r4,addb_tests
addb,nuv,n %r1,%r4,addb_tests
addb,znv,n %r1,%r4,addb_tests
addb,sv,n %r1,%r4,addb_tests
addb,od,n %r1,%r4,addb_tests
addb,tr,n %r1,%r4,addb_tests
addb,<>,n %r1,%r4,addb_tests
addb,>=,n %r1,%r4,addb_tests
addb,>,n %r1,%r4,addb_tests
addb,uv,n %r1,%r4,addb_tests
addb,vnz,n %r1,%r4,addb_tests
addb,nsv,n %r1,%r4,addb_tests
addb,ev,n %r1,%r4,addb_tests
addib_tests:
addib -1,%r4,addib_tests
addib,= -1,%r4,addib_tests
addib,< -1,%r4,addib_tests
addib,<= -1,%r4,addib_tests
addib,nuv -1,%r4,addib_tests
addib,znv -1,%r4,addib_tests
addib,sv -1,%r4,addib_tests
addib,od -1,%r4,addib_tests
addib,tr -1,%r4,addib_tests
addib,<> -1,%r4,addib_tests
addib,>= -1,%r4,addib_tests
addib,> -1,%r4,addib_tests
addib,uv -1,%r4,addib_tests
addib,vnz -1,%r4,addib_tests
addib,nsv -1,%r4,addib_tests
addib,ev -1,%r4,comb_tests
addib_nullified_tests:
addib,n -1,%r4,addib_tests
addib,=,n -1,%r4,addib_tests
addib,<,n -1,%r4,addib_tests
addib,<=,n -1,%r4,addib_tests
addib,nuv,n -1,%r4,addib_tests
addib,znv,n -1,%r4,addib_tests
addib,sv,n -1,%r4,addib_tests
addib,od,n -1,%r4,addib_tests
addib,tr,n -1,%r4,addib_tests
addib,<>,n -1,%r4,addib_tests
addib,>=,n -1,%r4,addib_tests
addib,>,n -1,%r4,addib_tests
addib,uv,n -1,%r4,addib_tests
addib,vnz,n -1,%r4,addib_tests
addib,nsv,n -1,%r4,addib_tests
addib,ev,n -1,%r4,addib_tests
; Needs to check lots of stuff (like corner bit cases)
bb_tests:
bvb,< %r4,bb_tests
bvb,>= %r4,bb_tests
bvb,<,n %r4,bb_tests
bvb,>=,n %r4,bb_tests
bb,< %r4,5,bb_tests
bb,>= %r4,5,bb_tests
bb,<,n %r4,5,bb_tests
bb,>=,n %r4,5,bb_tests