Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | .data |
2 | foodata: .word 42 | |
3 | .text | |
4 | footext: | |
5 | ||
6 | .macro test insn text="" | |
7 | .export \insn | |
8 | \insn: | |
9 | \insn \text | |
10 | .endm | |
11 | ||
12 | test abs r0 | |
13 | test addc "r1,r2" // A double forward slash starts a line comment | |
14 | test addi "r3, 1" # So does a hash | |
15 | test addu "r4, r5" // White space between operands should be ignored | |
16 | test and "r6,r7" ; test andi "r8,#2" // A semicolon seperates statements | |
17 | test andn "r9, r10" | |
18 | test asr "r11, R12" // Uppercase R is allowed as a register prefix | |
19 | test asrc "r13" | |
20 | test asri "r14,#0x1f" | |
21 | test bclri "r15,0" | |
22 | test bf footext | |
23 | test bgeni "sp, 7" // r0 can also be refered to as 'sp' | |
24 | test BGENI "r0, 8" // Officially upper case or mixed case | |
25 | test BGENi "r0, 31" // mnemonics should not be allowed, but we relax this... | |
26 | test bgenr "r1, r2" | |
27 | test bkpt | |
28 | test bmaski "r3,#8" | |
29 | test BMASKI "r3,0x1f" | |
30 | test br . // Dot means the current address | |
31 | test brev r4 | |
32 | test bseti "r5,30" | |
33 | test bsr footext | |
34 | test bt footext | |
35 | test btsti "r6, 27" | |
36 | test clrc | |
37 | test clrf r7 | |
38 | test clrt r8 | |
39 | test cmphs "r9,r10" | |
40 | test cmplt "r11,r12" | |
41 | test cmplei "r11, 14" | |
42 | test cmplti "r13,32" | |
43 | test cmpne "r14, r15" | |
44 | test cmpnei "r0,0" | |
45 | test decf r1 | |
46 | test decgt r2 | |
47 | test declt r3 | |
48 | test decne r4 | |
49 | test dect r5 | |
50 | test divs "r6,r1" | |
51 | test divu "r8, r1" | |
52 | test doze | |
53 | test ff1 r10 | |
54 | test incf r11 | |
55 | test inct r12 | |
56 | test ixh "r13,r14" | |
57 | test ixw "r15,r0" | |
58 | test jbf footext | |
59 | test jbr fooloop | |
60 | test jbsr footext | |
61 | test jbt fooloop | |
62 | test jmp r1 | |
63 | test jmpi footext | |
64 | test jsr r2 | |
65 | test jsri footext | |
66 | test ld.b "r3,(r4,0)" | |
67 | test ld.h "r5 , ( r6, #2)" | |
68 | test ld.w "r7, (r8, 0x4)" | |
69 | test ldb "r9,(r10,#0xf)" | |
70 | test ldh "r11, (r12, 30)" | |
71 | test ld "r13, (r14, 20)" | |
72 | test ldw "r13, (r14, 60)" | |
73 | test ldm "r2-r15,(r0)" | |
74 | .export fooloop | |
75 | fooloop: | |
76 | test ldq "r4-r7,(r1)" | |
77 | test loopt "r8, fooloop" | |
78 | test LRW "r9, [foolit]" | |
79 | test lrw "r9, 0x4321" // PC rel indirect | |
80 | .global foolit | |
81 | foolit: | |
82 | .word 0x1234 | |
83 | test lsl "r10,r11" | |
84 | test lslc r12 | |
85 | .literals // Dump literals table | |
86 | test lsli "r13,31" | |
87 | test lsr "r14,r15" | |
88 | test lsrc r0 | |
89 | test lsri "r1,1" | |
90 | test mclri "r4, 64" | |
91 | test mfcr "r2, cr0" | |
92 | test mov "r3,r4" | |
93 | test movf "r5, r6" | |
94 | test movi "r7, 127" | |
95 | test movt "r8, r9" | |
96 | test mtcr "r10, psr" | |
97 | test mult "r11, r12" | |
98 | test mvc r13 | |
99 | test mvcv r14 | |
100 | test neg r2 | |
101 | test not r15 | |
102 | test or "r0,r1" | |
103 | test rfi | |
104 | test rolc "r6, 1" | |
105 | test rori "r9, 6" | |
106 | test rotlc "r6, 1" | |
107 | test rotli "r2, #10" | |
108 | test rotri "r9, 6" | |
109 | test rsub "r3, r4" | |
110 | test rsubi "r5, 0x0" | |
111 | test rte | |
112 | test rts | |
113 | test setc | |
114 | test sextb r6 | |
115 | test sexth r7 | |
116 | test st.b "r8, (r9, 0)" | |
117 | test st.h "r10, (r11, 2)" | |
118 | test st.w "r12, (r13, 4)" | |
119 | test stb "r14, (r15, 15)" | |
120 | test sth "r0, (r1, 30)" | |
121 | test stw "r2, (r3, 0x3c)" | |
122 | test st "r4, (r5, 0)" | |
123 | test stm "r14 - r15 , (r0)" | |
124 | test stop | |
125 | test stq "r4 - r7 , (r1)" | |
126 | test subc "r7, r13" | |
127 | test subi "r14, 32" | |
128 | test subu "r9, r3" | |
129 | test sync | |
130 | test tstlt r5 | |
131 | test tstne r7 | |
132 | test trap 2 | |
133 | test tst "r14, r14" | |
134 | test tstnbz r2 | |
135 | test wait | |
136 | test xor "r15,r0" | |
137 | test xsr r11 | |
138 | test xtrb0 "r1, r1" | |
139 | test xtrb1 "r1, r2" | |
140 | test xtrb2 "r1, r0" | |
141 | test xtrb3 "r1, r13" | |
142 | test zextb r8 | |
143 | test zexth r4 | |
144 | clrc // These two instructions pad the object file | |
145 | clrc // out to a 16 byte boundary. | |
146 |