.data foodata: .hword 42 .text footext: .text .macro test nm:req, args:vararg \nm: \nm \args .global \nm .endm ;;; Basic Instruction Tests 1: ; All branches test beq,1b test bne,1b test bgtu,1b test bgteu,1b test blteu,1b test bltu,1b test bgt,1b test bgte,1b test blt,1b test blte,1b test bbeq,1b test bbne,1b test bblt,1b test b,1b test bl,1b ;;; jumps test jr,r1 jr r31 test jalr,r1 jalr r31 .macro test3i nm:req test \nm,r1,r2,r3 \nm r32,r33,r34 \nm r1,r2,#3 \nm r11,r2,#16 .endm test3i add test3i sub test3i asr test3i lsr test3i lsl .macro test3 nm:req test \nm,r1,r2,r3 \nm r11,r12,r13 .endm test3 orr test3 and test3 eor .macro testmem nm:req \nm r0,[r1,#3] \nm r10,[r1,#255] \nm r0,[r1,r2] \nm r0,[r1,r11] \nm r0,[r3],r2 \nm r10,[r12],r13 .endm testmem ldrb testmem ldrh testmem ldr testmem ldrd testmem strb testmem strh testmem str testmem strd test mov,r6,#255 mov r31,#65535 mov r0,#4098 .macro testmov cond:req mov\cond r1,r2 mov\cond r11,r12 .endm testmov eq testmov ne testmov gtu testmov gteu testmov lteu testmov ltu testmov gt testmov gte testmov lt testmov lte testmov beq testmov bne testmov blt testmov blte mov r1,r2 mov r11,r12 test nop test idle test bkpt test3 fadd test3 fsub test3 fmul test3 fmadd test3 fmsub movts config,r1 movts status,r31 movfs r1,imask movfs r31,pc test trap,#0 ; write syscall for simulator. rti ; dummy instruction