Much improved ARM support
This commit is contained in:
parent
b7fb506f00
commit
776053e805
@ -21,6 +21,17 @@
|
||||
|
||||
/* arm */
|
||||
/* private */
|
||||
/* types */
|
||||
/* register ids */
|
||||
#define REG(name, size, id) REG_ ## name ## _id = id,
|
||||
enum
|
||||
{
|
||||
#include "arm.reg"
|
||||
REG_id_count
|
||||
};
|
||||
#undef REG
|
||||
|
||||
|
||||
/* variables */
|
||||
static ArchDescription _arm_description = { "elf", ARCH_ENDIAN_BIG, 32, 32 };
|
||||
|
||||
|
1362
src/arch/arm.ins
1362
src/arch/arm.ins
File diff suppressed because it is too large
Load Diff
160
test/arm.S
160
test/arm.S
@ -1,25 +1,67 @@
|
||||
/* $Id$ */
|
||||
.text
|
||||
adc %r0, %r1, %r2
|
||||
adceq %r0, %r1, %r2
|
||||
add %r2, %r1, %r0
|
||||
addeq %r2, %r1, %r0
|
||||
adc %r3, %r4, %r5
|
||||
adceq %r3, %r4, %r5
|
||||
adc %r3, %r4, $0x0
|
||||
adceq %r3, %r4, $0x1
|
||||
adcs %r3, %r4, %r5
|
||||
adceqs %r3, %r4, %r5
|
||||
adcs %r3, %r4, $0x0
|
||||
adceqs %r3, %r4, $0x1
|
||||
add %r3, %r4, %r5
|
||||
addeq %r3, %r4, %r5
|
||||
add %r3, %r4, $0x0
|
||||
addeq %r3, %r4, $0x1
|
||||
adds %r3, %r4, %r5
|
||||
addeqs %r3, %r4, %r5
|
||||
adds %r3, %r4, $0x0
|
||||
addeqs %r3, %r4, $0x1
|
||||
and %r3, %r4, %r5
|
||||
andeq %r3, %r4, %r5
|
||||
and %r3, %r4, $0x0
|
||||
andeq %r3, %r4, $0x1
|
||||
ands %r3, %r4, %r5
|
||||
andeqs %r3, %r4, %r5
|
||||
ands %r3, %r4, $0x0
|
||||
andeqs %r3, %r4, $0x1
|
||||
b $0xa0
|
||||
beq $0xa0
|
||||
bic %r3, %r4, %r5
|
||||
biceq %r3, %r4, %r5
|
||||
bic %r3, %r4, $0x0
|
||||
biceq %r3, %r4, $0x1
|
||||
bics %r3, %r4, %r5
|
||||
biceqs %r3, %r4, %r5
|
||||
bics %r3, %r4, $0x0
|
||||
biceqs %r3, %r4, $0x1
|
||||
bl $0xa0
|
||||
bleq $0xa0
|
||||
bx %r0
|
||||
bxeq %r0
|
||||
bic %r0, %r0, %r0
|
||||
biceq %r2, %r0, %r1
|
||||
cmn %r5, %r4, %r3
|
||||
cmneq %r5, %r4, %r3
|
||||
cmp %r5, %r4, %r3
|
||||
cmpeq %r5, %r4, %r3
|
||||
eor %r5, %r4, %r3
|
||||
eoreq %r5, %r4, %r3
|
||||
cmn %r5, %r4
|
||||
cmneq %r5, %r4
|
||||
cmn %r5, $0x1
|
||||
cmneq %r5, $0x2
|
||||
cmns %r5, %r4
|
||||
cmneqs %r5, %r4
|
||||
cmns %r5, $0x1
|
||||
cmneqs %r5, $0x2
|
||||
cmp %r5, %r4
|
||||
cmpeq %r5, %r4
|
||||
cmp %r5, $0x1
|
||||
cmpeq %r5, $0x2
|
||||
cmps %r5, %r4
|
||||
cmpeqs %r5, %r4
|
||||
cmps %r5, $0x1
|
||||
cmpeqs %r5, $0x2
|
||||
eor %r3, %r4, %r5
|
||||
eoreq %r3, %r4, %r5
|
||||
eor %r3, %r4, $0x0
|
||||
eoreq %r3, %r4, $0x1
|
||||
eors %r3, %r4, %r5
|
||||
eoreqs %r3, %r4, %r5
|
||||
eors %r3, %r4, $0x0
|
||||
eoreqs %r3, %r4, $0x1
|
||||
ldc %r0, %r0, %r0
|
||||
ldceq %r0, %r0, %r0
|
||||
ldm %r0, %r0, %r0
|
||||
@ -28,34 +70,98 @@
|
||||
ldreq %r0, %r0, %r0
|
||||
mcr %r0, %r0, %r0
|
||||
mcreq %r0, %r0, %r0
|
||||
mov %r5, %r4, %r3
|
||||
moveq %r5, %r4, %r3
|
||||
mov %r5, %r4
|
||||
moveq %r5, %r4
|
||||
mov %r5, $0x1
|
||||
moveq %r5, $0x2
|
||||
movs %r5, %r4
|
||||
moveqs %r5, %r4
|
||||
movs %r5, $0x1
|
||||
moveqs %r5, $0x2
|
||||
mrc %r0, %r0, %r0
|
||||
mrceq %r0, %r0, %r0
|
||||
mrs %r0, %cpsr
|
||||
msr %r0, %cpsr
|
||||
mrseq %r0, %cpsr
|
||||
mrs %r0, %spsr
|
||||
mrseq %r0, %spsr
|
||||
msr %cpsr, %r0
|
||||
msreq %cpsr, %r1
|
||||
msr %spsr, %r0
|
||||
msreq %spsr, %r1
|
||||
mul %r0, %r1, %r2
|
||||
muls %r0, %r1, %r2
|
||||
mvn %r5, %r4, %r3
|
||||
mvneq %r5, %r4, %r3
|
||||
mvn %r5, %r4
|
||||
mvneq %r5, %r4
|
||||
mvn %r5, $0x1
|
||||
mvneq %r5, $0x2
|
||||
mvns %r5, %r4
|
||||
mvneqs %r5, %r4
|
||||
mvns %r5, $0x1
|
||||
mvneqs %r5, $0x2
|
||||
nop
|
||||
orr %r5, %r4, %r3
|
||||
orreq %r5, %r4, %r3
|
||||
rsb %r5, %r4, %r3
|
||||
rsbeq %r5, %r4, %r3
|
||||
rsc %r5, %r4, %r3
|
||||
rsceq %r5, %r4, %r3
|
||||
sbc %r5, %r4, %r3
|
||||
sbceq %r5, %r4, %r3
|
||||
orr %r3, %r4, %r5
|
||||
orreq %r3, %r4, %r5
|
||||
orr %r3, %r4, $0x0
|
||||
orreq %r3, %r4, $0x1
|
||||
orrs %r3, %r4, %r5
|
||||
orreqs %r3, %r4, %r5
|
||||
orrs %r3, %r4, $0x0
|
||||
orreqs %r3, %r4, $0x1
|
||||
rsb %r3, %r4, %r5
|
||||
rsbeq %r3, %r4, %r5
|
||||
rsb %r3, %r4, $0x0
|
||||
rsbeq %r3, %r4, $0x1
|
||||
rsbs %r3, %r4, %r5
|
||||
rsbeqs %r3, %r4, %r5
|
||||
rsbs %r3, %r4, $0x0
|
||||
rsbeqs %r3, %r4, $0x1
|
||||
rsc %r3, %r4, %r5
|
||||
rsceq %r3, %r4, %r5
|
||||
rsc %r3, %r4, $0x0
|
||||
rsceq %r3, %r4, $0x1
|
||||
rscs %r3, %r4, %r5
|
||||
rsceqs %r3, %r4, %r5
|
||||
rscs %r3, %r4, $0x0
|
||||
rsceqs %r3, %r4, $0x1
|
||||
sbc %r3, %r4, %r5
|
||||
sbceq %r3, %r4, %r5
|
||||
sbc %r3, %r4, $0x0
|
||||
sbceq %r3, %r4, $0x1
|
||||
sbcs %r3, %r4, %r5
|
||||
sbceqs %r3, %r4, %r5
|
||||
sbcs %r3, %r4, $0x0
|
||||
sbceqs %r3, %r4, $0x1
|
||||
stc %r0, %r0, %r0
|
||||
stceq %r0, %r0, %r0
|
||||
stm %r0, %r0, %r0
|
||||
stmeq %r0, %r0, %r0
|
||||
str %r0, %r0, %r0
|
||||
streq %r0, %r0, %r0
|
||||
sub %r5, %r4, %r3
|
||||
subeq %r5, %r4, %r3
|
||||
sub %r3, %r4, %r5
|
||||
subeq %r3, %r4, %r5
|
||||
sub %r3, %r4, $0x0
|
||||
subeq %r3, %r4, $0x1
|
||||
subs %r3, %r4, %r5
|
||||
subeqs %r3, %r4, %r5
|
||||
subs %r3, %r4, $0x0
|
||||
subeqs %r3, %r4, $0x1
|
||||
swi $0x0
|
||||
swine $0x0
|
||||
swp %r5, %r4, %r3
|
||||
swpeq %r5, %r4, %r3
|
||||
teq %r5, %r4
|
||||
teqeq %r5, %r4
|
||||
teq %r5, $0x1
|
||||
teqeq %r5, $0x2
|
||||
teqs %r5, %r4
|
||||
teqeqs %r5, %r4
|
||||
teqs %r5, $0x1
|
||||
teqeqs %r5, $0x2
|
||||
tst %r5, %r4
|
||||
tsteq %r5, %r4
|
||||
tst %r5, $0x1
|
||||
tsteq %r5, $0x2
|
||||
tsts %r5, %r4
|
||||
tsteqs %r5, %r4
|
||||
tsts %r5, $0x1
|
||||
tsteqs %r5, $0x2
|
||||
|
Loading…
Reference in New Issue
Block a user