blob: 77246d6d933d6d600c1aba34d3be081827068394 [file] [log] [blame]
; @OC@ test
; Generic unary operations supporting all sizes and their various
; addressing modes.
; Some fairly big pseudorandom numbers we don't want to compute
; as differences in actual data or code.
.set const_int_32, 0x1b94452b
.set const_int_m32, -3513208907
.set two701867, 2701867
; Other constants that are not differences
.set forty2, 42
.set mforty2, -42
.set three2767, 32767
.set six5535, 65535
.text
.syntax no_register_prefix
notstart:
.dword 0
start:
;;;;;;;;;;;;;;;;;
;
; r
@OC@.b r3
@OC@.w r5
@OC@.d r10
@OC@ r7
@OC@ r6
;;;;;;;;;;;;;;;;;
;
; [r]
@OC@.b [r0]
@OC@.w [r5]
@OC@.d [r10]
@OC@ [r0]
@OC@ [r3]
;;;;;;;;;;;;;;;;;
;
; [r+]
@OC@.b [r0+]
@OC@.w [r5+]
@OC@.d [r10+]
@OC@ [r4+]
@OC@ [r1+]
;;;;;;;;;;;;;;;;;
;
; [r+X]
; [r+r.b]
@OC@.b [r2+r0.b]
@OC@.w [r2+r5.b]
@OC@.d [r2+r10.b]
@OC@ [r11+r13.b]
@OC@ [r2+r10.b]
; [r+[r].b]
@OC@.b [r2+[r0].b]
@OC@.w [r2+[r5].b]
@OC@.d [r2+[r10].b]
@OC@ [r12+[r5].b]
@OC@ [r13+[r10].b]
; [r+[r+].b]
@OC@.b [r2+[r0+].b]
@OC@.w [r2+[r5+].b]
@OC@.d [r2+[r10+].b]
@OC@ [r2+[r13+].b]
@OC@ [r12+[r0+].b]
; [r+r.w]
@OC@.b [r2+r0.w]
@OC@.w [r2+r5.w]
@OC@.d [r2+r10.w]
@OC@ [r5+r11.w]
@OC@ [r1+r1.w]
; [r+[r].w]
@OC@.b [r2+[r0].w]
@OC@.w [r2+[r5].w]
@OC@.d [r2+[r10].w]
@OC@ [r0+[r0].w]
@OC@ [r2+[r7].w]
; [r+[r+].w]
@OC@.b [r2+[r0+].w]
@OC@.w [r2+[r5+].w]
@OC@.d [r2+[r10+].w]
@OC@ [r2+[r3+].w]
@OC@ [r7+[r8+].w]
; [r+r.d]
@OC@.b [r2+r0.d]
@OC@.w [r2+r5.d]
@OC@.d [r2+r10.d]
@OC@ [r2+r5.d]
@OC@ [r3+r10.d]
; [r+[r].d]
@OC@.b [r2+[r0].d]
@OC@.w [r2+[r5].d]
@OC@.d [r2+[r10].d]
@OC@ [r5+[r2].d]
@OC@ [r12+[r10].d]
; [r+[r+].d]
@OC@.b [r2+[r0+].d]
@OC@.w [r2+[r5+].d]
@OC@.d [r2+[r10+].d]
@OC@ [r1+[r5+].d]
@OC@ [r2+[r10+].d]
; [r+const]
; Note that I forgot 16-bit offsets and 32-bit offsets here and later.
; Maybe add them later if it feels necessary.
@OC@.b [r2+0]
@OC@.b [r2+1]
@OC@.b [r2+127]
@OC@.b [r2+128]
@OC@.b [r2+-1]
@OC@.b [r2+-127]
@OC@.b [r2+-128]
@OC@.b [r2+255]
@OC@.b [r2+42]
@OC@.b [r2+-42]
@OC@.b [r2-42]
@OC@.b [r2+forty2]
@OC@.b [r2+mforty2]
@OC@.b [r2+-forty2]
@OC@.b [r2+-mforty2]
@OC@.b [r2-forty2]
@OC@.b [r2-mforty2]
@OC@.b [r2+externalsym]
; Note that I missed 32-bit offsets (except -32769) here and later.
; Maybe add them later if it feels necessary.
@OC@.w [r2+0]
@OC@.w [r2+1]
@OC@.w [r2+127]
@OC@.w [r2+128]
@OC@.w [r2+-1]
@OC@.w [r2-1]
@OC@.w [r2+-127]
@OC@.w [r2+-128]
@OC@.w [r2+-129]
@OC@.w [r2-127]
@OC@.w [r2-128]
@OC@.w [r2-129]
@OC@.w [r2+255]
@OC@.w [r2+-255]
@OC@.w [r2-255]
@OC@.w [r2+256]
@OC@.w [r2-256]
@OC@.w [r2+-8856]
@OC@.w [r2-8856]
@OC@.w [r2+8856]
@OC@.w [r2+42]
@OC@.w [r2+-42]
@OC@.w [r2-42]
@OC@.w [r2+forty2]
@OC@.w [r2+mforty2]
@OC@.w [r2+-forty2]
@OC@.w [r2-forty2]
@OC@.w [r2+-mforty2]
@OC@.w [r2+three2767]
@OC@.w [r2+three2767+1]
@OC@.w [r2+three2767+2]
@OC@.w [r2+-three2767]
@OC@.w [r2+-(three2767+1)]
@OC@.w [r2+-(three2767+2)]
@OC@.w [r2-three2767]
@OC@.w [r2-(three2767+1)]
@OC@.w [r2-(three2767+2)]
@OC@.w [r2+six5535]
@OC@.w [r2+externalsym]
@OC@.d [r2+0]
@OC@.d [r2+1]
@OC@.d [r2+127]
@OC@.d [r2+128]
@OC@.d [r2+-1]
@OC@.d [r2-1]
@OC@.d [r2+-127]
@OC@.d [r2+-128]
@OC@.d [r2-127]
@OC@.d [r2-128]
@OC@.d [r2+255]
@OC@.d [r2+-255]
@OC@.d [r2-255]
@OC@.d [r2+256]
@OC@.d [r2-256]
@OC@.d [r2-8856]
@OC@.d [r2+-256]
@OC@.d [r2+-8856]
@OC@.d [r2+8856]
@OC@.d [r2+2781868]
@OC@.d [r2+-2701867]
@OC@.d [r2+0x9ec0ceac]
@OC@.d [r2+-0x7ec0cead]
@OC@.d [r2-0x7ec0cead]
@OC@.d [r2+const_int_m32]
@OC@.d [r2+const_int_32]
@OC@.d [r2+42]
@OC@.d [r2-42]
@OC@.d [r2+-42]
@OC@.d [r2+forty2]
@OC@.d [r2+mforty2]
@OC@.d [r2-forty2]
@OC@.d [r2-mforty2]
@OC@.d [r2+-forty2]
@OC@.d [r2+-mforty2]
@OC@.d [r2+three2767]
@OC@.d [r2+three2767+1]
@OC@.d [r2+three2767+2]
@OC@.d [r2+-three2767]
@OC@.d [r2+-(three2767+1)]
@OC@.d [r2+-(three2767+2)]
@OC@.d [r2-three2767]
@OC@.d [r2-(three2767+1)]
@OC@.d [r2-(three2767+2)]
@OC@.d [r2+six5535]
@OC@.d [r2+six5535+1]
@OC@.d [r2+two701867]
@OC@.d [r2+-two701867]
@OC@.d [r2-two701867]
@OC@.d [r2+externalsym]
@OC@ [r2+0]
@OC@ [r2+1]
@OC@ [r2+127]
@OC@ [r2+128]
@OC@ [r2+-1]
@OC@ [r2-1]
@OC@ [r2+-127]
@OC@ [r2+-128]
@OC@ [r2-127]
@OC@ [r2-128]
@OC@ [r2+255]
@OC@ [r2+-255]
@OC@ [r2-255]
@OC@ [r2+256]
@OC@ [r2-256]
@OC@ [r2-8856]
@OC@ [r2+-256]
@OC@ [r2+-8856]
@OC@ [r2+8856]
@OC@ [r2+2781868]
@OC@ [r2+-2701867]
@OC@ [r2+0x9ec0ceac]
@OC@ [r2+-0x7ec0cead]
@OC@ [r2-0x7ec0cead]
@OC@ [r2+const_int_m32]
@OC@ [r2+const_int_32]
@OC@ [r2+42]
@OC@ [r2-42]
@OC@ [r2+-42]
@OC@ [r2+forty2]
@OC@ [r2+mforty2]
@OC@ [r2-forty2]
@OC@ [r2-mforty2]
@OC@ [r2+-forty2]
@OC@ [r2+-mforty2]
@OC@ [r2+three2767]
@OC@ [r2+three2767+1]
@OC@ [r2+three2767+2]
@OC@ [r2+-three2767]
@OC@ [r2+-(three2767+1)]
@OC@ [r2+-(three2767+2)]
@OC@ [r2-three2767]
@OC@ [r2-(three2767+1)]
@OC@ [r2-(three2767+2)]
@OC@ [r2+six5535]
@OC@ [r2+six5535+1]
@OC@ [r2+two701867]
@OC@ [r2+-two701867]
@OC@ [r2-two701867]
@OC@ [r2+externalsym]
@OC@ [r2+0]
@OC@ [r2+1]
@OC@ [r2+127]
@OC@ [r2+128]
@OC@ [r2+-1]
@OC@ [r2-1]
@OC@ [r2+-127]
@OC@ [r2+-128]
@OC@ [r2-127]
@OC@ [r2-128]
@OC@ [r2+255]
@OC@ [r2+-255]
@OC@ [r2-255]
@OC@ [r2+256]
@OC@ [r2-256]
@OC@ [r2-8856]
@OC@ [r2+-256]
@OC@ [r2+-8856]
@OC@ [r2+8856]
@OC@ [r2+2781868]
@OC@ [r2+-2701867]
@OC@ [r2+0x9ec0ceac]
@OC@ [r2+-0x7ec0cead]
@OC@ [r2-0x7ec0cead]
@OC@ [r2+const_int_m32]
@OC@ [r2+const_int_32]
@OC@ [r2+42]
@OC@ [r2-42]
@OC@ [r2+-42]
@OC@ [r2+forty2]
@OC@ [r2+mforty2]
@OC@ [r2-forty2]
@OC@ [r2-mforty2]
@OC@ [r2+-forty2]
@OC@ [r2+-mforty2]
@OC@ [r2+three2767]
@OC@ [r2+three2767+1]
@OC@ [r2+three2767+2]
@OC@ [r2+-three2767]
@OC@ [r2+-(three2767+1)]
@OC@ [r2+-(three2767+2)]
@OC@ [r2-three2767]
@OC@ [r2-(three2767+1)]
@OC@ [r2-(three2767+2)]
@OC@ [r2+six5535]
@OC@ [r2+six5535+1]
@OC@ [r2+two701867]
@OC@ [r2+-two701867]
@OC@ [r2-two701867]
@OC@ [r2+externalsym]
;;;;;;;;;;;;;;;;;
;
; [r=r+X],r
; [r=r+r.b],r
@OC@.b [r12=r2+r0.b]
@OC@.w [r12=r2+r5.b]
@OC@.d [r12=r2+r10.b]
@OC@ [r1=r2+r3.b]
@OC@ [r12=r2+r10.b]
; [r=r+[r].b],r
@OC@.b [r12=r2+[r0].b]
@OC@.w [r12=r2+[r5].b]
@OC@.d [r12=r2+[r10].b]
@OC@ [r0=r2+[r5].b]
@OC@ [r3=r2+[r10].b]
; [r=r+[r+].b],r
@OC@.b [r12=r2+[r0+].b]
@OC@.w [r12=r2+[r5+].b]
@OC@.d [r12=r2+[r10+].b]
@OC@.w [r12=r2+[r5+].b]
@OC@.d [r12=r2+[r10+].b]
@OC@ [r5=r2+[r4+].b]
@OC@ [r2=r4+[r7+].b]
; [r=r+r.w],r
@OC@.b [r12=r2+r0.w]
@OC@.w [r12=r2+r5.w]
@OC@.d [r12=r2+r10.w]
@OC@ [r12=r12+r5.w]
@OC@ [r1=r3+r10.w]
; [r=r+[r].w],r
@OC@.b [r12=r2+[r0].w]
@OC@.w [r12=r2+[r5].w]
@OC@.d [r12=r2+[r10].w]
@OC@ [r12=r2+[r5].w]
@OC@ [r12=r7+[r10].w]
; [r=r+[r+].w],r
@OC@.b [r12=r2+[r0+].w]
@OC@.w [r12=r2+[r5+].w]
@OC@.d [r12=r2+[r10+].w]
@OC@.w [r12=r2+[r5+].w]
@OC@.d [r12=r2+[r10+].w]
@OC@ [r12=r6+[r7+].w]
@OC@ [r12=r3+[r1+].w]
; [r=r+r.d],r
@OC@.b [r12=r2+r0.d]
@OC@.w [r12=r2+r5.d]
@OC@.d [r12=r2+r10.d]
@OC@ [r4=r2+r5.d]
@OC@ [r12=r2+r10.d]
; [r=r+[r].d],r
@OC@.b [r12=r2+[r0].d]
@OC@.w [r12=r2+[r5].d]
@OC@.d [r12=r2+[r10].d]
@OC@ [r12=r3+[r5].d]
@OC@ [r12=r4+[r10].d]
; [r=r+[r+].d],r
@OC@.b [r12=r2+[r0+].d]
@OC@.w [r12=r2+[r5+].d]
@OC@.d [r12=r2+[r10+].d]
@OC@.w [r12=r2+[r5+].d]
@OC@.d [r12=r2+[r10+].d]
@OC@ [r12=r8+[r5+].d]
@OC@ [r12=r9+[r10+].d]
; [r=r+const],r
@OC@.b [r12=r2+0]
@OC@.b [r12=r2+1]
@OC@.b [r12=r2+127]
@OC@.b [r12=r2+128]
@OC@.b [r12=r2+-1]
@OC@.b [r12=r2+-127]
@OC@.b [r12=r2+-128]
@OC@.b [r12=r2+255]
@OC@.b [r12=r2+42]
@OC@.b [r12=r2+-42]
@OC@.b [r12=r2-42]
@OC@.b [r12=r2+forty2]
@OC@.b [r12=r2+mforty2]
@OC@.b [r12=r2+-forty2]
@OC@.b [r12=r2+-mforty2]
@OC@.b [r12=r2-forty2]
@OC@.b [r12=r2-mforty2]
@OC@.b [r12=r2+externalsym]
@OC@.w [r12=r2+0]
@OC@.w [r12=r2+1]
@OC@.w [r12=r2+127]
@OC@.w [r12=r2+128]
@OC@.w [r12=r2+-1]
@OC@.w [r12=r2-1]
@OC@.w [r12=r2+-127]
@OC@.w [r12=r2+-128]
@OC@.w [r12=r2+-129]
@OC@.w [r12=r2-127]
@OC@.w [r12=r2-128]
@OC@.w [r12=r2-129]
@OC@.w [r12=r2+255]
@OC@.w [r12=r2+-255]
@OC@.w [r12=r2-255]
@OC@.w [r12=r2+256]
@OC@.w [r12=r2-256]
@OC@.w [r12=r2+-8856]
@OC@.w [r12=r2-8856]
@OC@.w [r12=r2+8856]
@OC@.w [r12=r2+42]
@OC@.w [r12=r2+-42]
@OC@.w [r12=r2-42]
@OC@.w [r12=r2+forty2]
@OC@.w [r12=r2+mforty2]
@OC@.w [r12=r2+-forty2]
@OC@.w [r12=r2-forty2]
@OC@.w [r12=r2+-mforty2]
@OC@.w [r12=r2+three2767]
@OC@.w [r12=r2+three2767+1]
@OC@.w [r12=r2+three2767+2]
@OC@.w [r12=r2+-three2767]
@OC@.w [r12=r2+-(three2767+1)]
@OC@.w [r12=r2+-(three2767+2)]
@OC@.w [r12=r2-three2767]
@OC@.w [r12=r2-(three2767+1)]
@OC@.w [r12=r2-(three2767+2)]
@OC@.w [r12=r2+six5535]
@OC@.w [r12=r2+externalsym]
@OC@.d [r12=r2+0]
@OC@.d [r12=r2+1]
@OC@.d [r12=r2+127]
@OC@.d [r12=r2+128]
@OC@.d [r12=r2+-1]
@OC@.d [r12=r2-1]
@OC@.d [r12=r2+-127]
@OC@.d [r12=r2+-128]
@OC@.d [r12=r2-127]
@OC@.d [r12=r2-128]
@OC@.d [r12=r2+255]
@OC@.d [r12=r2+-255]
@OC@.d [r12=r2-255]
@OC@.d [r12=r2+256]
@OC@.d [r12=r2-256]
@OC@.d [r12=r2-8856]
@OC@.d [r12=r2+-256]
@OC@.d [r12=r2+-8856]
@OC@.d [r12=r2+8856]
@OC@.d [r12=r2+2781868]
@OC@.d [r12=r2+-2701867]
@OC@.d [r12=r2+0x9ec0ceac]
@OC@.d [r12=r2+-0x7ec0cead]
@OC@.d [r12=r2-0x7ec0cead]
@OC@.d [r12=r2+const_int_m32]
@OC@.d [r12=r2+const_int_32]
@OC@.d [r12=r2+42]
@OC@.d [r12=r2-42]
@OC@.d [r12=r2+-42]
@OC@.d [r12=r2+forty2]
@OC@.d [r12=r2+mforty2]
@OC@.d [r12=r2-forty2]
@OC@.d [r12=r2-mforty2]
@OC@.d [r12=r2+-forty2]
@OC@.d [r12=r2+-mforty2]
@OC@.d [r12=r2+three2767]
@OC@.d [r12=r2+three2767+1]
@OC@.d [r12=r2+three2767+2]
@OC@.d [r12=r2+-three2767]
@OC@.d [r12=r2+-(three2767+1)]
@OC@.d [r12=r2+-(three2767+2)]
@OC@.d [r12=r2-three2767]
@OC@.d [r12=r2-(three2767+1)]
@OC@.d [r12=r2-(three2767+2)]
@OC@.d [r12=r2+six5535]
@OC@.d [r12=r2+six5535+1]
@OC@.d [r12=r2+two701867]
@OC@.d [r12=r2+-two701867]
@OC@.d [r12=r2-two701867]
@OC@.d [r12=r2+externalsym]
@OC@ [r12=r2+0]
@OC@ [r12=r2+1]
@OC@ [r12=r2+127]
@OC@ [r12=r2+128]
@OC@ [r12=r2+-1]
@OC@ [r12=r2-1]
@OC@ [r12=r2+-127]
@OC@ [r12=r2+-128]
@OC@ [r12=r2-127]
@OC@ [r12=r2-128]
@OC@ [r12=r2+255]
@OC@ [r12=r2+-255]
@OC@ [r12=r2-255]
@OC@ [r12=r2+256]
@OC@ [r12=r2-256]
@OC@ [r12=r2-8856]
@OC@ [r12=r2+-256]
@OC@ [r12=r2+-8856]
@OC@ [r12=r2+8856]
@OC@ [r12=r2+2781868]
@OC@ [r12=r2+-2701867]
@OC@ [r12=r2+0x9ec0ceac]
@OC@ [r12=r2+-0x7ec0cead]
@OC@ [r12=r2-0x7ec0cead]
@OC@ [r12=r2+const_int_m32]
@OC@ [r12=r2+const_int_32]
@OC@ [r12=r2+42]
@OC@ [r12=r2-42]
@OC@ [r12=r2+-42]
@OC@ [r12=r2+forty2]
@OC@ [r12=r2+mforty2]
@OC@ [r12=r2-forty2]
@OC@ [r12=r2-mforty2]
@OC@ [r12=r2+-forty2]
@OC@ [r12=r2+-mforty2]
@OC@ [r12=r2+three2767]
@OC@ [r12=r2+three2767+1]
@OC@ [r12=r2+three2767+2]
@OC@ [r12=r2+-three2767]
@OC@ [r12=r2+-(three2767+1)]
@OC@ [r12=r2+-(three2767+2)]
@OC@ [r12=r2-three2767]
@OC@ [r12=r2-(three2767+1)]
@OC@ [r12=r2-(three2767+2)]
@OC@ [r12=r2+six5535]
@OC@ [r12=r2+six5535+1]
@OC@ [r12=r2+two701867]
@OC@ [r12=r2+-two701867]
@OC@ [r12=r2-two701867]
@OC@ [r12=r2+externalsym]
;;;;;;;;;;;;;;;;;;;
;
; [[r(+)]],r
@OC@.b [[r3]]
@OC@.w [[r2]]
@OC@.d [[r3]]
@OC@ [[r2]]
@OC@ [[r3]]
@OC@.b [[r9+]]
@OC@.w [[r3+]]
@OC@.d [[r1+]]
@OC@ [[r3+]]
@OC@ [[r1+]]
@OC@.b [externalsym]
@OC@.w [externalsym]
@OC@.d [externalsym]
@OC@ [externalsym]
@OC@.b [notstart]
@OC@.w [notstart]
@OC@.d [notstart]
@OC@ [notstart]
end: