Goatman13 / pypyc2c

PowerPC to C plugin for IDA
1 stars 1 forks source link
cell disassembler gamecube ida power powerpc ppc ppc2c ps3 scripts tools wii x360

pypyc2c

PowerPC to C plugin for IDA converted to python.

Changes

Examples

clrlsldi  r9, r31, 32,9   # r9 = (r31 << 9) & 0x1FFFFFFFE00
clrlwi    r28, r28, 24    # r28 = r28 & 0xFF
clrrwi    r6, r7, 2       # r6 = r7 & 0xFFFFFFFC
extrdi    r3, r3, 5,38    # r3 = (r3 >> 21) & 0x1F
insrdi    r0, r30, 4,60   # r0 = (r0 & ~0xF) | (r30 & 0xF)
rldicl    r10, r7, 2,56   # r10 = ((r7 << 2) | (r7 >> 62)) & 0xFF
rlwinm    r0, r0, 0,16,27 # r0 = r0 & 0xFFF0
sldi      r7, r29, 3      # r7 = (r29 << 3) & 0xFFFFFFFFFFFFFFF8

RESOLVE_ANDNOT = 0 output:
0xE8DC4  rlwinm  r0, r0, 2,1,31  # r0 = ((r0 << 2) | (r0 >> 30)) & 0x7FFFFFFF
0xE8DC8  rotrwi  r0, r0, 2       # r0 = (r0 << 30) | (r0 >> 2)

RESOLVE_ANDNOT = 1 output:
0xE8DC4  rlwinm  r0, r0, 2,1,31  # Paired with rotrwi at 0xE8DC8
0xE8DC8  rotrwi  r0, r0, 2       # r0 = r0 & ~0x20000000 (r0 from 0xE8DC4)

Warning! RESOLVE_ANDNOT option edit comment for both 0xE8DC4 and 0xE8DC8.
Regardless on which opcode of those 2 pypyc2c was used.