SPARC: Various changes

- additional patterns
 - minor instruction fixes in mul/div/64-bit math
 - do not pass g0 to zeroflags
 - conditional trap
This commit is contained in:
mumbel 2024-09-09 14:38:35 -05:00
parent c8a455e197
commit 34e1329595
2 changed files with 180 additions and 124 deletions

View file

@ -2,30 +2,21 @@
<patternpairs totalbits="32" postbits="16">
<prepatterns>
<data>0x81f00000 </data> <!-- done -->
<data>0x81c7e008 0x........ </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c7e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RET : delayslot filler -->
<data>0x81c3e008 0x........ </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81c3e008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETL : delayslot filler -->
<data>0x81cfe008 0x........ </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81cfe008 0x........ 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 </data> <!-- RETURN : delayslot filler -->
<data>0x81c7e008 0x........ </data> <!-- RET : delayslot -->
<data>0x81c7e008 0x........ 0000000. 0x000000 </data> <!-- RET : delayslot filler/nop -->
<data>0x81c3e008 0x........ </data> <!-- RETL : delayslot -->
<data>0x81c3e008 0x........ 0000000. 0x000000 </data> <!-- RETL : delayslot filler/nop -->
<data>0x81cfe008 0x........ </data> <!-- RETURN : delayslot -->
<data>0x81cfe008 0x........ 0000000. 0x000000 </data> <!-- RETURN : delayslot filler/nop -->
<data>0x10 101..... 0x.... 0x........ </data> <!-- BA -label : delayslot -->
<data>0x10 101..... 0x.... 0x........ 0000000. 0x000000 </data> <!-- BA -label : delayslot filler/nop -->
<data>0x30 101..... 0x.... </data> <!-- BA,A -label (no delayslot)-->
<data>0x30 101..... 0x.... 0000000. 0x000000 </data> <!-- BA,A -label (no delayslot): filler/nop -->
<data>01...... 0x...... 10.....1 11101... 0x.... </data> <!-- CALL label; RESTORE : filler/nop -->
<data>01...... 0x...... 10.....1 11101... 0x.... 0000000. 0x000000 </data> <!-- CALL label; RESTORE : filler/nop -->
<data>01...... 0x...... 0x9E 00010... 0x.... </data> <!-- CALL label; OR rs1,rs2,o7 : filler/nop -->
<data>01...... 0x...... 0x9E 00010... 0x.... 0000000. 0x000000 </data> <!-- CALL label; OR rs1,rs2,o7 : filler/nop -->
<data>0000000. 0x000000 0000000. 0x000000 </data> <!-- filler/nop -->
</prepatterns>
<postpatterns>
<data>10011101 11100011 10111... ........</data> <!-- save sp, xx, sp -->