GP-4474 Added PPC LE patterns

This commit is contained in:
emteere 2024-04-15 15:53:05 -04:00
parent d934e7aace
commit 631056a5cc
3 changed files with 44 additions and 1 deletions

View file

@ -63,5 +63,6 @@ data/languages/vsx.sinc||GHIDRA||||END|
data/manuals/PowerISA.idx||GHIDRA||||END|
data/manuals/PowerPC.idx||GHIDRA||||END|
data/patterns/PPC_BE_patterns.xml||GHIDRA||||END|
data/patterns/PPC_LE_patterns.xml||GHIDRA||||END|
data/patterns/patternconstraints.xml||GHIDRA||||END|
data/ppc64-r2CallStubs.xml||GHIDRA||||END|

View file

@ -0,0 +1,39 @@
<patternlist>
<patternpairs totalbits="32" postbits="16">
<prepatterns>
<data>0x2000804e </data> <!-- BLR -->
<data>......00 0x.. 0x.. 010010.. </data> <!-- B xxxxx -->
</prepatterns>
<postpatterns>
<data>.....000 11...... 00100001 10010100 </data> <!-- STWU r1,xx(r1) -->
<data>0x780b2c7c ........ ........ 0x21 0x38 0x00008191 </data> <!-- or r12,r1,r1; stw r12,0x0(r1) -->
<codeboundary /> <!-- it is at least code -->
<possiblefuncstart/>
</postpatterns>
</patternpairs>
<patternpairs totalbits="32" postbits="16">
<prepatterns>
<data> ......00 0x.. 0x.. 010010.. </data> <!-- B xxxxx -->
</prepatterns>
<postpatterns>
<data>.....000 11...... 00100001 10010100 10100110 00000010 ...01000 011111.. </data> <!-- STWU r1,xx(r1); MFSPR rx,lr -->
<data>.....000 11...... 00100001 10010100 0x........ 10100110 00000010 ...01000 011111.. </data> <!-- STWU r1,xx(r1); xxx_instr; MFSPR rx,lr -->
<data>.....000 11...... 00100001 10010100 0x........ 0x........ 10100110 00000010 ...01000 011111.. </data> <!-- STWU r1,xx(r1); xxx_instr; xxx_instr; MFSPR rx,lr -->
<data>0x780b2c7c ........ ........ 0x21 0x38 0x00008191 </data> <!-- or r12,r1,r1; stw r12,0x0(r1) -->
<codeboundary /> <!-- it is at least code -->
<possiblefuncstart/>
</postpatterns>
</patternpairs>
<pattern>
<data>.....000 11...... 00100001 10010100 10100110 00000010 ...01000 011111.. </data> <!-- STWU r1,xx(r1); MFSPR rx,lr -->
<codeboundary />
<possiblefuncstart after="defined" /> <!-- must be something defined right before this -->
</pattern>
<pattern>
<data>0x21 0x00 0x80 0x4e</data> <!-- blrl -->
<possiblefuncstart validcode="function" label="__get_pc_thunk_lr" /> <!-- must be a function here -->
</pattern>
</patternlist>

View file

@ -2,4 +2,7 @@
<language id="PowerPC:BE:*:*">
<patternfile>PPC_BE_patterns.xml</patternfile>
</language>
</patternconstraints>
<language id="PowerPC:LE:*:*">
<patternfile>PPC_LE_patterns.xml</patternfile>
</language>
</patternconstraints>