Opcode support summary as of Thu Jan 10 19:21:59 2008 EST
Note that empty cells mean that opcode isn't supported (or isn't specific to) that chip. The M16C supports all the opcodes the R8C supports, and the M32C supports all the opcodes the M32CM supports. GAS only has two options: support all r8c/m16c opcodes, or support all m32cm/m32c opcodes. Numbers in parentheses are the number of patterns tested, either pass or fail/total. Summary is at the bottom, after the table.
Also note that this table is neither a policy of non-support, nor a promise to fix. It exists merely as a statement of the current status of the m32c assember, and/or the correctness of my testsuite ;-)
Opcode | R8C/M16C | M16C | M32CM/M32C | M32C |
---|---|---|---|---|
abs | PASS (92) | PASS (120) | ||
adc | PASS (4830) | PASS (10132) | ||
adcf | PASS (92) | PASS (136) | ||
add | PASS (5870) | PASS (90916) | ||
addx | PASS (5196) | |||
adjnz | PASS (828) | PASS (1224) | ||
and | PASS (9794) | PASS (61092) | ||
band | PASS (68) | PASS (136) | ||
bclr | PASS (76) | PASS (136) | ||
bitindex | PASS (136) | |||
bm | PASS (1242) | PASS (2466) | ||
bnand | PASS (68) | PASS (136) | ||
bnor | PASS (68) | PASS (136) | ||
bnot | PASS (76) | PASS (136) | ||
bntst | PASS (68) | PASS (136) | ||
bnxor | PASS (68) | PASS (136) | ||
bor | PASS (68) | PASS (136) | ||
brk | PASS (1) | PASS (1) | ||
brk2 | PASS (1) | |||
bset | PASS (76) | PASS (136) | ||
btst | PASS (76) | PASS (282) | ||
btstc | PASS (68) | PASS (136) | ||
btsts | PASS (68) | PASS (136) | ||
bxor | PASS (68) | PASS (136) | ||
clip | PASS (5780) | |||
cmp | PASS (10070) | PASS (91167) | ||
cmpx | PASS (708) | |||
d | PASS (16) | PASS (38624) | ||
dad | PASS (16) | |||
dec | PASS (19) | PASS (240) | ||
div | PASS (105) | PASS (253) | PASS (66) | |
divu | PASS (101) | PASS (249) | PASS (66) | |
divx | PASS (105) | PASS (253) | PASS (66) | |
enter | PASS (4) | PASS (4) | ||
exitd | PASS (1) | PASS (1) | ||
exts | PASS (43) | PASS (4484) | ||
extz | PASS (4356) | |||
fclr | PASS (8) | PASS (8) | ||
freit | PASS (1) | |||
fset | PASS (8) | PASS (8) | ||
inc | PASS (19) | PASS (240) | ||
index | PASS (1224) | |||
int | PASS (2) | PASS (2) | ||
into | PASS (1) | PASS (1) | ||
j | PASS (54) | PASS (54) | ||
jmp | PASS (11) | PASS (10) | ||
jmpi | FAIL (8/71) jmpi.w 1048575[a0] jmpi.w 1048575[a1] jmpi.w 0xfffff[a0] jmpi.w 0xfffff[a1] jmpi.a 1048575[a0] jmpi.a 1048575[a1] jmpi.a 0xfffff[a0] jmpi.a 0xfffff[a1] |
PASS (134) | ||
jmps | PASS (2) | PASS (2) | ||
jsr | PASS (5) | PASS (5) | ||
jsri | PASS (71) | PASS (134) | ||
jsrs | PASS (2) | PASS (2) | ||
ldc | PASS (371) | PASS (1523) | ||
ldctx | PASS (25) | PASS (25) | ||
lde | PASS (1012) | |||
ldintb | FAIL (5/5) ldintb #0 ldintb #1 ldintb #1048575 ldintb #0xfffff ldintb #sym |
|||
ldipl | PASS (2) | PASS (2) | ||
max | PASS (20264) | |||
mov | PASS (12713) | PASS (95231) | ||
mova | PASS (174) | PASS (240) | ||
movx | PASS (708) | |||
mul | PASS (4830) | PASS (30360) | PASS (66) | |
mulex | PASS (107) | |||
mulu | PASS (4646) | PASS (29880) | PASS (66) | |
neg | PASS (92) | PASS (240) | ||
nop | PASS (1) | PASS (1) | ||
not | PASS (201) | PASS (240) | ||
or | PASS (5562) | PASS (61123) | ||
pop | PASS (188) | PASS (240) | ||
popc | PASS (7) | PASS (15) | ||
popm | PASS (130) | PASS (130) | ||
push | PASS (214) | PASS (377) | ||
pusha | PASS (29) | PASS (50) | ||
pushc | PASS (7) | PASS (15) | ||
pushm | PASS (130) | PASS (130) | ||
reit | PASS (1) | PASS (1) | ||
rmpa | PASS (2) | PASS (2) | ||
rolc | PASS (92) | PASS (240) | ||
rorc | PASS (92) | PASS (240) | ||
rot | PASS (460) | PASS (1200) | ||
rts | PASS (1) | PASS (1) | ||
sbb | PASS (4830) | PASS (10132) | ||
sbjnz | PASS (828) | PASS (1224) | ||
sc | PASS (1224) | |||
scmpu | PASS (2) | |||
sha | PASS (470) | PASS (1790) | ||
shanc | PASS (590) | |||
shl | PASS (470) | PASS (1790) | ||
shlnc | PASS (590) | |||
sin | PASS (2) | |||
smov | PASS (4) | |||
smovb | PASS (2) | |||
smovf | PASS (2) | |||
smovu | PASS (2) | |||
sout | PASS (2) | |||
sstr | PASS (2) | PASS (2) | ||
stc | PASS (368) | PASS (1402) | ||
stctx | PASS (25) | PASS (25) | ||
ste | PASS (1012) | |||
stnz | PASS (102) | PASS (1560) | ||
stz | PASS (102) | PASS (1560) | ||
stzx | PASS (612) | PASS (10200) | ||
sub | PASS (5562) | PASS (90387) | ||
subx | PASS (14868) | |||
tst | PASS (4830) | PASS (20472) | ||
und | PASS (1) | PASS (1) | ||
wait | PASS (1) | PASS (1) | ||
xchg | PASS (368) | PASS (1440) | ||
xor | PASS (5428) | PASS (30360) | ||
TOTAL: 90,397 PASS: 90,384 FAIL: 13 (1%) |
TOTAL: 4 PASS: 4 FAIL: 0 |
TOTAL: 752,313 PASS: 752,313 FAIL: 0 |
TOTAL: 1,510 PASS: 1,510 FAIL: 0 |
Copyright 2006 Red Hat Inc.
The information found here should not be considered an official statement by Red Hat Inc.
All opinions expressed here are my own.