Improving ARM support
This commit is contained in:
parent
48ea9c04a8
commit
03f5786aca
@ -74,6 +74,14 @@
|
|||||||
#define OPDATAF (32 << AOD_SIZE)
|
#define OPDATAF (32 << AOD_SIZE)
|
||||||
#define OP_DATA2 AO_IMMEDIATE(0, 12, 0)
|
#define OP_DATA2 AO_IMMEDIATE(0, 12, 0)
|
||||||
|
|
||||||
|
/* multiply and multiply-accumulate */
|
||||||
|
#define OPMUL(cond) (cond | (0x9 << 4))
|
||||||
|
#define OPMULF (32 << AOD_SIZE)
|
||||||
|
#define OPMULS(cond) (cond | (0x1 << 20) | (0x9 << 4))
|
||||||
|
#define OPMULSF (32 << AOD_SIZE)
|
||||||
|
#define OPMULA(cond) (cond | (0x1 << 21) | (0x9 << 4))
|
||||||
|
#define OPMULAF (32 << AOD_SIZE)
|
||||||
|
|
||||||
|
|
||||||
/* instructions */
|
/* instructions */
|
||||||
/* adc */
|
/* adc */
|
||||||
@ -293,8 +301,11 @@
|
|||||||
{ "msrgt", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
{ "msrgt", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
||||||
{ "msrle", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
{ "msrle", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
||||||
{ "msral", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
{ "msral", 0x00000000, OPNOP, OP_R, OP_R, AOT_NONE },
|
||||||
{ "mul", 0x00000000, OPNOP, AOT_NONE, AOT_NONE, AOT_NONE },
|
|
||||||
#endif
|
#endif
|
||||||
|
/* mul */
|
||||||
|
{ "mul", OPMUL(al), OPMULF, OP_R, OP_R, OP_R },
|
||||||
|
/* muls */
|
||||||
|
{ "muls", OPMULS(al), OPMULSF,OP_R, OP_R, OP_R },
|
||||||
/* mvn */
|
/* mvn */
|
||||||
{ "mvn", OPDATA(al,mvn), OPDATAF,OP_R, OP_R, OP_R },
|
{ "mvn", OPDATA(al,mvn), OPDATAF,OP_R, OP_R, OP_R },
|
||||||
{ "mvneq", OPDATA(eq,mvn), OPDATAF,OP_R, OP_R, OP_R },
|
{ "mvneq", OPDATA(eq,mvn), OPDATAF,OP_R, OP_R, OP_R },
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
moveq %r5, %r4, %r3
|
moveq %r5, %r4, %r3
|
||||||
mrs %r0, %cpsr
|
mrs %r0, %cpsr
|
||||||
msr %r0, %cpsr
|
msr %r0, %cpsr
|
||||||
|
mul %r0, %r1, %r2
|
||||||
|
muls %r0, %r1, %r2
|
||||||
mvn %r5, %r4, %r3
|
mvn %r5, %r4, %r3
|
||||||
mvneq %r5, %r4, %r3
|
mvneq %r5, %r4, %r3
|
||||||
nop
|
nop
|
||||||
|
Loading…
Reference in New Issue
Block a user