Improving ARM support
This commit is contained in:
parent
281dd9d9c4
commit
a88be030a1
@ -39,6 +39,15 @@ static int _arm_write(ArchPlugin * plugin, ArchInstruction * instruction,
|
|||||||
|
|
||||||
switch(instruction->opcode & 0x0fffffff) /* ignore condition code */
|
switch(instruction->opcode & 0x0fffffff) /* ignore condition code */
|
||||||
{
|
{
|
||||||
|
/* branch and exchange */
|
||||||
|
case OPBX(0):
|
||||||
|
/* first operand, Rn */
|
||||||
|
p = call->operands[0].value._register.name;
|
||||||
|
if((ar = helper->get_register_by_name_size(helper->arch,
|
||||||
|
p, 32)) == NULL)
|
||||||
|
return -1;
|
||||||
|
opcode |= ar->id;
|
||||||
|
break;
|
||||||
/* data processing */
|
/* data processing */
|
||||||
case OPDP(0, and):
|
case OPDP(0, and):
|
||||||
case OPDP(0, eor):
|
case OPDP(0, eor):
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
biceqs %r3, %r4, $0x1
|
biceqs %r3, %r4, $0x1
|
||||||
bl $0xa0
|
bl $0xa0
|
||||||
bleq $0xa0
|
bleq $0xa0
|
||||||
bx %r0
|
bx %r1
|
||||||
bxeq %r0
|
bxeq %r2
|
||||||
cmn %r5, %r4
|
cmn %r5, %r4
|
||||||
cmneq %r5, %r4
|
cmneq %r5, %r4
|
||||||
cmn %r5, $0x1
|
cmn %r5, $0x1
|
||||||
|
Loading…
Reference in New Issue
Block a user