diff --git a/asdf.txt b/asdf.txt index 8f395644..44b01305 100644 --- a/asdf.txt +++ b/asdf.txt @@ -1,131 +1,3 @@ -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8800040'. Expected 'lv.s S000, 0x40($a0)', got 'lv.s 0x0, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8810040'. Expected 'lv.s S010, 0x40($a0)', got 'lv.s 0x1, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8820040'. Expected 'lv.s S020, 0x40($a0)', got 'lv.s 0x2, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8830040'. Expected 'lv.s S030, 0x40($a0)', got 'lv.s 0x3, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8840040'. Expected 'lv.s S100, 0x40($a0)', got 'lv.s 0x4, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8850040'. Expected 'lv.s S110, 0x40($a0)', got 'lv.s 0x5, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8860040'. Expected 'lv.s S120, 0x40($a0)', got 'lv.s 0x6, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8870040'. Expected 'lv.s S130, 0x40($a0)', got 'lv.s 0x7, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8880040'. Expected 'lv.s S200, 0x40($a0)', got 'lv.s 0x8, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8890040'. Expected 'lv.s S210, 0x40($a0)', got 'lv.s 0x9, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88A0040'. Expected 'lv.s S220, 0x40($a0)', got 'lv.s 0xA, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88B0040'. Expected 'lv.s S230, 0x40($a0)', got 'lv.s 0xB, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88C0040'. Expected 'lv.s S300, 0x40($a0)', got 'lv.s 0xC, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88D0040'. Expected 'lv.s S310, 0x40($a0)', got 'lv.s 0xD, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88E0040'. Expected 'lv.s S320, 0x40($a0)', got 'lv.s 0xE, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88F0040'. Expected 'lv.s S330, 0x40($a0)', got 'lv.s 0xF, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8900040'. Expected 'lv.s S400, 0x40($a0)', got 'lv.s 0x10, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8910040'. Expected 'lv.s S410, 0x40($a0)', got 'lv.s 0x11, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8920040'. Expected 'lv.s S420, 0x40($a0)', got 'lv.s 0x12, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8930040'. Expected 'lv.s S430, 0x40($a0)', got 'lv.s 0x13, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8940040'. Expected 'lv.s S500, 0x40($a0)', got 'lv.s 0x14, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8950040'. Expected 'lv.s S510, 0x40($a0)', got 'lv.s 0x15, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8960040'. Expected 'lv.s S520, 0x40($a0)', got 'lv.s 0x16, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8970040'. Expected 'lv.s S530, 0x40($a0)', got 'lv.s 0x17, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8980040'. Expected 'lv.s S600, 0x40($a0)', got 'lv.s 0x18, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8990040'. Expected 'lv.s S610, 0x40($a0)', got 'lv.s 0x19, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89A0040'. Expected 'lv.s S620, 0x40($a0)', got 'lv.s 0x1A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89B0040'. Expected 'lv.s S630, 0x40($a0)', got 'lv.s 0x1B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89C0040'. Expected 'lv.s S700, 0x40($a0)', got 'lv.s 0x1C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89D0040'. Expected 'lv.s S710, 0x40($a0)', got 'lv.s 0x1D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89E0040'. Expected 'lv.s S720, 0x40($a0)', got 'lv.s 0x1E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89F0040'. Expected 'lv.s S730, 0x40($a0)', got 'lv.s 0x1F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8800041'. Expected 'lv.s S001, 0x40($a0)', got 'lv.s 0x20, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8810041'. Expected 'lv.s S011, 0x40($a0)', got 'lv.s 0x21, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8820041'. Expected 'lv.s S021, 0x40($a0)', got 'lv.s 0x22, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8830041'. Expected 'lv.s S031, 0x40($a0)', got 'lv.s 0x23, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8840041'. Expected 'lv.s S101, 0x40($a0)', got 'lv.s 0x24, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8850041'. Expected 'lv.s S111, 0x40($a0)', got 'lv.s 0x25, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8860041'. Expected 'lv.s S121, 0x40($a0)', got 'lv.s 0x26, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8870041'. Expected 'lv.s S131, 0x40($a0)', got 'lv.s 0x27, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8880041'. Expected 'lv.s S201, 0x40($a0)', got 'lv.s 0x28, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8890041'. Expected 'lv.s S211, 0x40($a0)', got 'lv.s 0x29, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88A0041'. Expected 'lv.s S221, 0x40($a0)', got 'lv.s 0x2A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88B0041'. Expected 'lv.s S231, 0x40($a0)', got 'lv.s 0x2B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88C0041'. Expected 'lv.s S301, 0x40($a0)', got 'lv.s 0x2C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88D0041'. Expected 'lv.s S311, 0x40($a0)', got 'lv.s 0x2D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88E0041'. Expected 'lv.s S321, 0x40($a0)', got 'lv.s 0x2E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88F0041'. Expected 'lv.s S331, 0x40($a0)', got 'lv.s 0x2F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8900041'. Expected 'lv.s S401, 0x40($a0)', got 'lv.s 0x30, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8910041'. Expected 'lv.s S411, 0x40($a0)', got 'lv.s 0x31, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8920041'. Expected 'lv.s S421, 0x40($a0)', got 'lv.s 0x32, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8930041'. Expected 'lv.s S431, 0x40($a0)', got 'lv.s 0x33, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8940041'. Expected 'lv.s S501, 0x40($a0)', got 'lv.s 0x34, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8950041'. Expected 'lv.s S511, 0x40($a0)', got 'lv.s 0x35, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8960041'. Expected 'lv.s S521, 0x40($a0)', got 'lv.s 0x36, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8970041'. Expected 'lv.s S531, 0x40($a0)', got 'lv.s 0x37, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8980041'. Expected 'lv.s S601, 0x40($a0)', got 'lv.s 0x38, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8990041'. Expected 'lv.s S611, 0x40($a0)', got 'lv.s 0x39, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89A0041'. Expected 'lv.s S621, 0x40($a0)', got 'lv.s 0x3A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89B0041'. Expected 'lv.s S631, 0x40($a0)', got 'lv.s 0x3B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89C0041'. Expected 'lv.s S701, 0x40($a0)', got 'lv.s 0x3C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89D0041'. Expected 'lv.s S711, 0x40($a0)', got 'lv.s 0x3D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89E0041'. Expected 'lv.s S721, 0x40($a0)', got 'lv.s 0x3E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89F0041'. Expected 'lv.s S731, 0x40($a0)', got 'lv.s 0x3F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8800042'. Expected 'lv.s S002, 0x40($a0)', got 'lv.s 0x40, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8810042'. Expected 'lv.s S012, 0x40($a0)', got 'lv.s 0x41, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8820042'. Expected 'lv.s S022, 0x40($a0)', got 'lv.s 0x42, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8830042'. Expected 'lv.s S032, 0x40($a0)', got 'lv.s 0x43, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8840042'. Expected 'lv.s S102, 0x40($a0)', got 'lv.s 0x44, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8850042'. Expected 'lv.s S112, 0x40($a0)', got 'lv.s 0x45, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8860042'. Expected 'lv.s S122, 0x40($a0)', got 'lv.s 0x46, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8870042'. Expected 'lv.s S132, 0x40($a0)', got 'lv.s 0x47, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8880042'. Expected 'lv.s S202, 0x40($a0)', got 'lv.s 0x48, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8890042'. Expected 'lv.s S212, 0x40($a0)', got 'lv.s 0x49, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88A0042'. Expected 'lv.s S222, 0x40($a0)', got 'lv.s 0x4A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88B0042'. Expected 'lv.s S232, 0x40($a0)', got 'lv.s 0x4B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88C0042'. Expected 'lv.s S302, 0x40($a0)', got 'lv.s 0x4C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88D0042'. Expected 'lv.s S312, 0x40($a0)', got 'lv.s 0x4D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88E0042'. Expected 'lv.s S322, 0x40($a0)', got 'lv.s 0x4E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88F0042'. Expected 'lv.s S332, 0x40($a0)', got 'lv.s 0x4F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8900042'. Expected 'lv.s S402, 0x40($a0)', got 'lv.s 0x50, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8910042'. Expected 'lv.s S412, 0x40($a0)', got 'lv.s 0x51, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8920042'. Expected 'lv.s S422, 0x40($a0)', got 'lv.s 0x52, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8930042'. Expected 'lv.s S432, 0x40($a0)', got 'lv.s 0x53, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8940042'. Expected 'lv.s S502, 0x40($a0)', got 'lv.s 0x54, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8950042'. Expected 'lv.s S512, 0x40($a0)', got 'lv.s 0x55, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8960042'. Expected 'lv.s S522, 0x40($a0)', got 'lv.s 0x56, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8970042'. Expected 'lv.s S532, 0x40($a0)', got 'lv.s 0x57, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8980042'. Expected 'lv.s S602, 0x40($a0)', got 'lv.s 0x58, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8990042'. Expected 'lv.s S612, 0x40($a0)', got 'lv.s 0x59, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89A0042'. Expected 'lv.s S622, 0x40($a0)', got 'lv.s 0x5A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89B0042'. Expected 'lv.s S632, 0x40($a0)', got 'lv.s 0x5B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89C0042'. Expected 'lv.s S702, 0x40($a0)', got 'lv.s 0x5C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89D0042'. Expected 'lv.s S712, 0x40($a0)', got 'lv.s 0x5D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89E0042'. Expected 'lv.s S722, 0x40($a0)', got 'lv.s 0x5E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89F0042'. Expected 'lv.s S732, 0x40($a0)', got 'lv.s 0x5F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8800043'. Expected 'lv.s S003, 0x40($a0)', got 'lv.s 0x60, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8810043'. Expected 'lv.s S013, 0x40($a0)', got 'lv.s 0x61, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8820043'. Expected 'lv.s S023, 0x40($a0)', got 'lv.s 0x62, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8830043'. Expected 'lv.s S033, 0x40($a0)', got 'lv.s 0x63, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8840043'. Expected 'lv.s S103, 0x40($a0)', got 'lv.s 0x64, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8850043'. Expected 'lv.s S113, 0x40($a0)', got 'lv.s 0x65, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8860043'. Expected 'lv.s S123, 0x40($a0)', got 'lv.s 0x66, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8870043'. Expected 'lv.s S133, 0x40($a0)', got 'lv.s 0x67, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8880043'. Expected 'lv.s S203, 0x40($a0)', got 'lv.s 0x68, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8890043'. Expected 'lv.s S213, 0x40($a0)', got 'lv.s 0x69, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88A0043'. Expected 'lv.s S223, 0x40($a0)', got 'lv.s 0x6A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88B0043'. Expected 'lv.s S233, 0x40($a0)', got 'lv.s 0x6B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88C0043'. Expected 'lv.s S303, 0x40($a0)', got 'lv.s 0x6C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88D0043'. Expected 'lv.s S313, 0x40($a0)', got 'lv.s 0x6D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88E0043'. Expected 'lv.s S323, 0x40($a0)', got 'lv.s 0x6E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC88F0043'. Expected 'lv.s S333, 0x40($a0)', got 'lv.s 0x6F, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8900043'. Expected 'lv.s S403, 0x40($a0)', got 'lv.s 0x70, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8910043'. Expected 'lv.s S413, 0x40($a0)', got 'lv.s 0x71, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8920043'. Expected 'lv.s S423, 0x40($a0)', got 'lv.s 0x72, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8930043'. Expected 'lv.s S433, 0x40($a0)', got 'lv.s 0x73, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8940043'. Expected 'lv.s S503, 0x40($a0)', got 'lv.s 0x74, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8950043'. Expected 'lv.s S513, 0x40($a0)', got 'lv.s 0x75, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8960043'. Expected 'lv.s S523, 0x40($a0)', got 'lv.s 0x76, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8970043'. Expected 'lv.s S533, 0x40($a0)', got 'lv.s 0x77, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8980043'. Expected 'lv.s S603, 0x40($a0)', got 'lv.s 0x78, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC8990043'. Expected 'lv.s S613, 0x40($a0)', got 'lv.s 0x79, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89A0043'. Expected 'lv.s S623, 0x40($a0)', got 'lv.s 0x7A, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89B0043'. Expected 'lv.s S633, 0x40($a0)', got 'lv.s 0x7B, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89C0043'. Expected 'lv.s S703, 0x40($a0)', got 'lv.s 0x7C, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89D0043'. Expected 'lv.s S713, 0x40($a0)', got 'lv.s 0x7D, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89E0043'. Expected 'lv.s S723, 0x40($a0)', got 'lv.s 0x7E, 0x40($a0)' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xC89F0043'. Expected 'lv.s S733, 0x40($a0)', got 'lv.s 0x7F, 0x40($a0)' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD8800040'. Expected 'lv.q C000, 0x40($a0)', got 'lv.q 0x0, 0x40($a0)' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD8810040'. Expected 'lv.q C010, 0x40($a0)', got 'lv.q 0x1, 0x40($a0)' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD8820040'. Expected 'lv.q C020, 0x40($a0)', got 'lv.q 0x2, 0x40($a0)' @@ -222,6 +94,5 @@ tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD89C004 tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD89D0042'. Expected 'lv.q C710, 0x40($a0)', got '.word 0xD89D0042 # lv.q 0x1D, 0x40($a0) # 00000002 ' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD89E0042'. Expected 'lv.q C720, 0x40($a0)', got '.word 0xD89E0042 # lv.q 0x1E, 0x40($a0) # 00000002 ' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xD89F0042'. Expected 'lv.q C730, 0x40($a0)', got '.word 0xD89F0042 # lv.q 0x1F, 0x40($a0) # 00000002 ' -tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xE8800040'. Expected 'sv.s S000, 0x40($a0)', got 'sv.s 0x0, 0x40($a0)' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xF8800040'. Expected 'sv.q C000, 0x40($a0)', got 'sv.q 0x0, 0x40($a0)' tests/c/instruction_checks/r4000allegrex_vfpu_disasm.c: Error on word '0xF8800042'. Expected 'sv.q C000, 0x40($a0), wb', got 'sv.q 0x0, 0x40($a0), wb' diff --git a/cplusplus/include/generated/Registers_enum_classes.hpp b/cplusplus/include/generated/Registers_enum_classes.hpp index d0c8e46b..fce51540 100644 --- a/cplusplus/include/generated/Registers_enum_classes.hpp +++ b/cplusplus/include/generated/Registers_enum_classes.hpp @@ -436,6 +436,138 @@ RSP_VECTOR_v31, }; }; + namespace R4000Allegrex { + enum class VF { + R4000ALLEGREX_VF_S000, + R4000ALLEGREX_VF_S010, + R4000ALLEGREX_VF_S020, + R4000ALLEGREX_VF_S030, + R4000ALLEGREX_VF_S100, + R4000ALLEGREX_VF_S110, + R4000ALLEGREX_VF_S120, + R4000ALLEGREX_VF_S130, + R4000ALLEGREX_VF_S200, + R4000ALLEGREX_VF_S210, + R4000ALLEGREX_VF_S220, + R4000ALLEGREX_VF_S230, + R4000ALLEGREX_VF_S300, + R4000ALLEGREX_VF_S310, + R4000ALLEGREX_VF_S320, + R4000ALLEGREX_VF_S330, + R4000ALLEGREX_VF_S400, + R4000ALLEGREX_VF_S410, + R4000ALLEGREX_VF_S420, + R4000ALLEGREX_VF_S430, + R4000ALLEGREX_VF_S500, + R4000ALLEGREX_VF_S510, + R4000ALLEGREX_VF_S520, + R4000ALLEGREX_VF_S530, + R4000ALLEGREX_VF_S600, + R4000ALLEGREX_VF_S610, + R4000ALLEGREX_VF_S620, + R4000ALLEGREX_VF_S630, + R4000ALLEGREX_VF_S700, + R4000ALLEGREX_VF_S710, + R4000ALLEGREX_VF_S720, + R4000ALLEGREX_VF_S730, + R4000ALLEGREX_VF_S001, + R4000ALLEGREX_VF_S011, + R4000ALLEGREX_VF_S021, + R4000ALLEGREX_VF_S031, + R4000ALLEGREX_VF_S101, + R4000ALLEGREX_VF_S111, + R4000ALLEGREX_VF_S121, + R4000ALLEGREX_VF_S131, + R4000ALLEGREX_VF_S201, + R4000ALLEGREX_VF_S211, + R4000ALLEGREX_VF_S221, + R4000ALLEGREX_VF_S231, + R4000ALLEGREX_VF_S301, + R4000ALLEGREX_VF_S311, + R4000ALLEGREX_VF_S321, + R4000ALLEGREX_VF_S331, + R4000ALLEGREX_VF_S401, + R4000ALLEGREX_VF_S411, + R4000ALLEGREX_VF_S421, + R4000ALLEGREX_VF_S431, + R4000ALLEGREX_VF_S501, + R4000ALLEGREX_VF_S511, + R4000ALLEGREX_VF_S521, + R4000ALLEGREX_VF_S531, + R4000ALLEGREX_VF_S601, + R4000ALLEGREX_VF_S611, + R4000ALLEGREX_VF_S621, + R4000ALLEGREX_VF_S631, + R4000ALLEGREX_VF_S701, + R4000ALLEGREX_VF_S711, + R4000ALLEGREX_VF_S721, + R4000ALLEGREX_VF_S731, + R4000ALLEGREX_VF_S002, + R4000ALLEGREX_VF_S012, + R4000ALLEGREX_VF_S022, + R4000ALLEGREX_VF_S032, + R4000ALLEGREX_VF_S102, + R4000ALLEGREX_VF_S112, + R4000ALLEGREX_VF_S122, + R4000ALLEGREX_VF_S132, + R4000ALLEGREX_VF_S202, + R4000ALLEGREX_VF_S212, + R4000ALLEGREX_VF_S222, + R4000ALLEGREX_VF_S232, + R4000ALLEGREX_VF_S302, + R4000ALLEGREX_VF_S312, + R4000ALLEGREX_VF_S322, + R4000ALLEGREX_VF_S332, + R4000ALLEGREX_VF_S402, + R4000ALLEGREX_VF_S412, + R4000ALLEGREX_VF_S422, + R4000ALLEGREX_VF_S432, + R4000ALLEGREX_VF_S502, + R4000ALLEGREX_VF_S512, + R4000ALLEGREX_VF_S522, + R4000ALLEGREX_VF_S532, + R4000ALLEGREX_VF_S602, + R4000ALLEGREX_VF_S612, + R4000ALLEGREX_VF_S622, + R4000ALLEGREX_VF_S632, + R4000ALLEGREX_VF_S702, + R4000ALLEGREX_VF_S712, + R4000ALLEGREX_VF_S722, + R4000ALLEGREX_VF_S732, + R4000ALLEGREX_VF_S003, + R4000ALLEGREX_VF_S013, + R4000ALLEGREX_VF_S023, + R4000ALLEGREX_VF_S033, + R4000ALLEGREX_VF_S103, + R4000ALLEGREX_VF_S113, + R4000ALLEGREX_VF_S123, + R4000ALLEGREX_VF_S133, + R4000ALLEGREX_VF_S203, + R4000ALLEGREX_VF_S213, + R4000ALLEGREX_VF_S223, + R4000ALLEGREX_VF_S233, + R4000ALLEGREX_VF_S303, + R4000ALLEGREX_VF_S313, + R4000ALLEGREX_VF_S323, + R4000ALLEGREX_VF_S333, + R4000ALLEGREX_VF_S403, + R4000ALLEGREX_VF_S413, + R4000ALLEGREX_VF_S423, + R4000ALLEGREX_VF_S433, + R4000ALLEGREX_VF_S503, + R4000ALLEGREX_VF_S513, + R4000ALLEGREX_VF_S523, + R4000ALLEGREX_VF_S533, + R4000ALLEGREX_VF_S603, + R4000ALLEGREX_VF_S613, + R4000ALLEGREX_VF_S623, + R4000ALLEGREX_VF_S633, + R4000ALLEGREX_VF_S703, + R4000ALLEGREX_VF_S713, + R4000ALLEGREX_VF_S723, + R4000ALLEGREX_VF_S733, + }; + }; namespace R5900 { enum class VF { R5900_VF_vf0, diff --git a/include/generated/RegisterDescriptor_Descriptors_arrays.h b/include/generated/RegisterDescriptor_Descriptors_arrays.h index 428158d4..b5a74b7d 100644 --- a/include/generated/RegisterDescriptor_Descriptors_arrays.h +++ b/include/generated/RegisterDescriptor_Descriptors_arrays.h @@ -432,6 +432,136 @@ const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descriptors[] = [RABBITIZER_REG_RSP_VECTOR_v30] = { 0 }, [RABBITIZER_REG_RSP_VECTOR_v31] = { 0 }, }; +const RabbitizerRegisterDescriptor RabbitizerRegister_R4000AllegrexVF_Descriptors[] = { + [RABBITIZER_REG_R4000ALLEGREX_VF_S000] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S010] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S020] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S030] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S100] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S110] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S120] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S130] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S200] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S210] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S220] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S230] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S300] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S310] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S320] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S330] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S400] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S410] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S420] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S430] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S500] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S510] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S520] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S530] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S600] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S610] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S620] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S630] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S700] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S710] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S720] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S730] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S001] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S011] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S021] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S031] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S101] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S111] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S121] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S131] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S201] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S211] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S221] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S231] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S301] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S311] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S321] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S331] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S401] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S411] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S421] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S431] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S501] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S511] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S521] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S531] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S601] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S611] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S621] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S631] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S701] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S711] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S721] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S731] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S002] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S012] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S022] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S032] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S102] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S112] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S122] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S132] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S202] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S212] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S222] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S232] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S302] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S312] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S322] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S332] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S402] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S412] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S422] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S432] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S502] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S512] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S522] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S532] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S602] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S612] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S622] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S632] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S702] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S712] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S722] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S732] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S003] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S013] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S023] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S033] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S103] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S113] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S123] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S133] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S203] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S213] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S223] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S233] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S303] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S313] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S323] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S333] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S403] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S413] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S423] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S433] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S503] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S513] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S523] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S533] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S603] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S613] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S623] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S633] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S703] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S713] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S723] = { 0 }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S733] = { 0 }, +}; const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[] = { [RABBITIZER_REG_R5900_VF_vf0] = { 0 }, [RABBITIZER_REG_R5900_VF_vf1] = { 0 }, diff --git a/include/generated/Registers_Names_arrays.h b/include/generated/Registers_Names_arrays.h index 5eba8f1f..f3d3febe 100644 --- a/include/generated/Registers_Names_arrays.h +++ b/include/generated/Registers_Names_arrays.h @@ -432,6 +432,136 @@ const char *RabbitizerRegister_RspVector_Names[][2] = { [RABBITIZER_REG_RSP_VECTOR_v30] = { "$" "30", "$" "v30" }, [RABBITIZER_REG_RSP_VECTOR_v31] = { "$" "31", "$" "v31" }, }; +const char *RabbitizerRegister_R4000AllegrexVF_Names[][2] = { + [RABBITIZER_REG_R4000ALLEGREX_VF_S000] = { "S000", "S000" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S010] = { "S010", "S010" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S020] = { "S020", "S020" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S030] = { "S030", "S030" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S100] = { "S100", "S100" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S110] = { "S110", "S110" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S120] = { "S120", "S120" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S130] = { "S130", "S130" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S200] = { "S200", "S200" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S210] = { "S210", "S210" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S220] = { "S220", "S220" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S230] = { "S230", "S230" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S300] = { "S300", "S300" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S310] = { "S310", "S310" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S320] = { "S320", "S320" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S330] = { "S330", "S330" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S400] = { "S400", "S400" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S410] = { "S410", "S410" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S420] = { "S420", "S420" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S430] = { "S430", "S430" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S500] = { "S500", "S500" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S510] = { "S510", "S510" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S520] = { "S520", "S520" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S530] = { "S530", "S530" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S600] = { "S600", "S600" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S610] = { "S610", "S610" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S620] = { "S620", "S620" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S630] = { "S630", "S630" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S700] = { "S700", "S700" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S710] = { "S710", "S710" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S720] = { "S720", "S720" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S730] = { "S730", "S730" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S001] = { "S001", "S001" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S011] = { "S011", "S011" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S021] = { "S021", "S021" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S031] = { "S031", "S031" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S101] = { "S101", "S101" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S111] = { "S111", "S111" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S121] = { "S121", "S121" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S131] = { "S131", "S131" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S201] = { "S201", "S201" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S211] = { "S211", "S211" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S221] = { "S221", "S221" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S231] = { "S231", "S231" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S301] = { "S301", "S301" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S311] = { "S311", "S311" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S321] = { "S321", "S321" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S331] = { "S331", "S331" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S401] = { "S401", "S401" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S411] = { "S411", "S411" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S421] = { "S421", "S421" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S431] = { "S431", "S431" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S501] = { "S501", "S501" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S511] = { "S511", "S511" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S521] = { "S521", "S521" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S531] = { "S531", "S531" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S601] = { "S601", "S601" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S611] = { "S611", "S611" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S621] = { "S621", "S621" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S631] = { "S631", "S631" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S701] = { "S701", "S701" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S711] = { "S711", "S711" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S721] = { "S721", "S721" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S731] = { "S731", "S731" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S002] = { "S002", "S002" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S012] = { "S012", "S012" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S022] = { "S022", "S022" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S032] = { "S032", "S032" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S102] = { "S102", "S102" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S112] = { "S112", "S112" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S122] = { "S122", "S122" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S132] = { "S132", "S132" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S202] = { "S202", "S202" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S212] = { "S212", "S212" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S222] = { "S222", "S222" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S232] = { "S232", "S232" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S302] = { "S302", "S302" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S312] = { "S312", "S312" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S322] = { "S322", "S322" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S332] = { "S332", "S332" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S402] = { "S402", "S402" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S412] = { "S412", "S412" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S422] = { "S422", "S422" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S432] = { "S432", "S432" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S502] = { "S502", "S502" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S512] = { "S512", "S512" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S522] = { "S522", "S522" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S532] = { "S532", "S532" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S602] = { "S602", "S602" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S612] = { "S612", "S612" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S622] = { "S622", "S622" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S632] = { "S632", "S632" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S702] = { "S702", "S702" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S712] = { "S712", "S712" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S722] = { "S722", "S722" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S732] = { "S732", "S732" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S003] = { "S003", "S003" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S013] = { "S013", "S013" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S023] = { "S023", "S023" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S033] = { "S033", "S033" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S103] = { "S103", "S103" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S113] = { "S113", "S113" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S123] = { "S123", "S123" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S133] = { "S133", "S133" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S203] = { "S203", "S203" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S213] = { "S213", "S213" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S223] = { "S223", "S223" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S233] = { "S233", "S233" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S303] = { "S303", "S303" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S313] = { "S313", "S313" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S323] = { "S323", "S323" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S333] = { "S333", "S333" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S403] = { "S403", "S403" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S413] = { "S413", "S413" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S423] = { "S423", "S423" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S433] = { "S433", "S433" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S503] = { "S503", "S503" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S513] = { "S513", "S513" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S523] = { "S523", "S523" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S533] = { "S533", "S533" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S603] = { "S603", "S603" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S613] = { "S613", "S613" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S623] = { "S623", "S623" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S633] = { "S633", "S633" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S703] = { "S703", "S703" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S713] = { "S713", "S713" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S723] = { "S723", "S723" }, + [RABBITIZER_REG_R4000ALLEGREX_VF_S733] = { "S733", "S733" }, +}; const char *RabbitizerRegister_R5900VF_Names[][2] = { [RABBITIZER_REG_R5900_VF_vf0] = { "$" "vf0", "$" "vf0" }, [RABBITIZER_REG_R5900_VF_vf1] = { "$" "vf1", "$" "vf1" }, diff --git a/include/generated/Registers_enums.h b/include/generated/Registers_enums.h index 8052c690..fa141783 100644 --- a/include/generated/Registers_enums.h +++ b/include/generated/Registers_enums.h @@ -432,6 +432,136 @@ typedef enum RabbitizerRegister_RspVector { RABBITIZER_REG_RSP_VECTOR_v30, RABBITIZER_REG_RSP_VECTOR_v31, } RabbitizerRegister_RspVector; +typedef enum RabbitizerRegister_R4000AllegrexVF { + RABBITIZER_REG_R4000ALLEGREX_VF_S000, + RABBITIZER_REG_R4000ALLEGREX_VF_S010, + RABBITIZER_REG_R4000ALLEGREX_VF_S020, + RABBITIZER_REG_R4000ALLEGREX_VF_S030, + RABBITIZER_REG_R4000ALLEGREX_VF_S100, + RABBITIZER_REG_R4000ALLEGREX_VF_S110, + RABBITIZER_REG_R4000ALLEGREX_VF_S120, + RABBITIZER_REG_R4000ALLEGREX_VF_S130, + RABBITIZER_REG_R4000ALLEGREX_VF_S200, + RABBITIZER_REG_R4000ALLEGREX_VF_S210, + RABBITIZER_REG_R4000ALLEGREX_VF_S220, + RABBITIZER_REG_R4000ALLEGREX_VF_S230, + RABBITIZER_REG_R4000ALLEGREX_VF_S300, + RABBITIZER_REG_R4000ALLEGREX_VF_S310, + RABBITIZER_REG_R4000ALLEGREX_VF_S320, + RABBITIZER_REG_R4000ALLEGREX_VF_S330, + RABBITIZER_REG_R4000ALLEGREX_VF_S400, + RABBITIZER_REG_R4000ALLEGREX_VF_S410, + RABBITIZER_REG_R4000ALLEGREX_VF_S420, + RABBITIZER_REG_R4000ALLEGREX_VF_S430, + RABBITIZER_REG_R4000ALLEGREX_VF_S500, + RABBITIZER_REG_R4000ALLEGREX_VF_S510, + RABBITIZER_REG_R4000ALLEGREX_VF_S520, + RABBITIZER_REG_R4000ALLEGREX_VF_S530, + RABBITIZER_REG_R4000ALLEGREX_VF_S600, + RABBITIZER_REG_R4000ALLEGREX_VF_S610, + RABBITIZER_REG_R4000ALLEGREX_VF_S620, + RABBITIZER_REG_R4000ALLEGREX_VF_S630, + RABBITIZER_REG_R4000ALLEGREX_VF_S700, + RABBITIZER_REG_R4000ALLEGREX_VF_S710, + RABBITIZER_REG_R4000ALLEGREX_VF_S720, + RABBITIZER_REG_R4000ALLEGREX_VF_S730, + RABBITIZER_REG_R4000ALLEGREX_VF_S001, + RABBITIZER_REG_R4000ALLEGREX_VF_S011, + RABBITIZER_REG_R4000ALLEGREX_VF_S021, + RABBITIZER_REG_R4000ALLEGREX_VF_S031, + RABBITIZER_REG_R4000ALLEGREX_VF_S101, + RABBITIZER_REG_R4000ALLEGREX_VF_S111, + RABBITIZER_REG_R4000ALLEGREX_VF_S121, + RABBITIZER_REG_R4000ALLEGREX_VF_S131, + RABBITIZER_REG_R4000ALLEGREX_VF_S201, + RABBITIZER_REG_R4000ALLEGREX_VF_S211, + RABBITIZER_REG_R4000ALLEGREX_VF_S221, + RABBITIZER_REG_R4000ALLEGREX_VF_S231, + RABBITIZER_REG_R4000ALLEGREX_VF_S301, + RABBITIZER_REG_R4000ALLEGREX_VF_S311, + RABBITIZER_REG_R4000ALLEGREX_VF_S321, + RABBITIZER_REG_R4000ALLEGREX_VF_S331, + RABBITIZER_REG_R4000ALLEGREX_VF_S401, + RABBITIZER_REG_R4000ALLEGREX_VF_S411, + RABBITIZER_REG_R4000ALLEGREX_VF_S421, + RABBITIZER_REG_R4000ALLEGREX_VF_S431, + RABBITIZER_REG_R4000ALLEGREX_VF_S501, + RABBITIZER_REG_R4000ALLEGREX_VF_S511, + RABBITIZER_REG_R4000ALLEGREX_VF_S521, + RABBITIZER_REG_R4000ALLEGREX_VF_S531, + RABBITIZER_REG_R4000ALLEGREX_VF_S601, + RABBITIZER_REG_R4000ALLEGREX_VF_S611, + RABBITIZER_REG_R4000ALLEGREX_VF_S621, + RABBITIZER_REG_R4000ALLEGREX_VF_S631, + RABBITIZER_REG_R4000ALLEGREX_VF_S701, + RABBITIZER_REG_R4000ALLEGREX_VF_S711, + RABBITIZER_REG_R4000ALLEGREX_VF_S721, + RABBITIZER_REG_R4000ALLEGREX_VF_S731, + RABBITIZER_REG_R4000ALLEGREX_VF_S002, + RABBITIZER_REG_R4000ALLEGREX_VF_S012, + RABBITIZER_REG_R4000ALLEGREX_VF_S022, + RABBITIZER_REG_R4000ALLEGREX_VF_S032, + RABBITIZER_REG_R4000ALLEGREX_VF_S102, + RABBITIZER_REG_R4000ALLEGREX_VF_S112, + RABBITIZER_REG_R4000ALLEGREX_VF_S122, + RABBITIZER_REG_R4000ALLEGREX_VF_S132, + RABBITIZER_REG_R4000ALLEGREX_VF_S202, + RABBITIZER_REG_R4000ALLEGREX_VF_S212, + RABBITIZER_REG_R4000ALLEGREX_VF_S222, + RABBITIZER_REG_R4000ALLEGREX_VF_S232, + RABBITIZER_REG_R4000ALLEGREX_VF_S302, + RABBITIZER_REG_R4000ALLEGREX_VF_S312, + RABBITIZER_REG_R4000ALLEGREX_VF_S322, + RABBITIZER_REG_R4000ALLEGREX_VF_S332, + RABBITIZER_REG_R4000ALLEGREX_VF_S402, + RABBITIZER_REG_R4000ALLEGREX_VF_S412, + RABBITIZER_REG_R4000ALLEGREX_VF_S422, + RABBITIZER_REG_R4000ALLEGREX_VF_S432, + RABBITIZER_REG_R4000ALLEGREX_VF_S502, + RABBITIZER_REG_R4000ALLEGREX_VF_S512, + RABBITIZER_REG_R4000ALLEGREX_VF_S522, + RABBITIZER_REG_R4000ALLEGREX_VF_S532, + RABBITIZER_REG_R4000ALLEGREX_VF_S602, + RABBITIZER_REG_R4000ALLEGREX_VF_S612, + RABBITIZER_REG_R4000ALLEGREX_VF_S622, + RABBITIZER_REG_R4000ALLEGREX_VF_S632, + RABBITIZER_REG_R4000ALLEGREX_VF_S702, + RABBITIZER_REG_R4000ALLEGREX_VF_S712, + RABBITIZER_REG_R4000ALLEGREX_VF_S722, + RABBITIZER_REG_R4000ALLEGREX_VF_S732, + RABBITIZER_REG_R4000ALLEGREX_VF_S003, + RABBITIZER_REG_R4000ALLEGREX_VF_S013, + RABBITIZER_REG_R4000ALLEGREX_VF_S023, + RABBITIZER_REG_R4000ALLEGREX_VF_S033, + RABBITIZER_REG_R4000ALLEGREX_VF_S103, + RABBITIZER_REG_R4000ALLEGREX_VF_S113, + RABBITIZER_REG_R4000ALLEGREX_VF_S123, + RABBITIZER_REG_R4000ALLEGREX_VF_S133, + RABBITIZER_REG_R4000ALLEGREX_VF_S203, + RABBITIZER_REG_R4000ALLEGREX_VF_S213, + RABBITIZER_REG_R4000ALLEGREX_VF_S223, + RABBITIZER_REG_R4000ALLEGREX_VF_S233, + RABBITIZER_REG_R4000ALLEGREX_VF_S303, + RABBITIZER_REG_R4000ALLEGREX_VF_S313, + RABBITIZER_REG_R4000ALLEGREX_VF_S323, + RABBITIZER_REG_R4000ALLEGREX_VF_S333, + RABBITIZER_REG_R4000ALLEGREX_VF_S403, + RABBITIZER_REG_R4000ALLEGREX_VF_S413, + RABBITIZER_REG_R4000ALLEGREX_VF_S423, + RABBITIZER_REG_R4000ALLEGREX_VF_S433, + RABBITIZER_REG_R4000ALLEGREX_VF_S503, + RABBITIZER_REG_R4000ALLEGREX_VF_S513, + RABBITIZER_REG_R4000ALLEGREX_VF_S523, + RABBITIZER_REG_R4000ALLEGREX_VF_S533, + RABBITIZER_REG_R4000ALLEGREX_VF_S603, + RABBITIZER_REG_R4000ALLEGREX_VF_S613, + RABBITIZER_REG_R4000ALLEGREX_VF_S623, + RABBITIZER_REG_R4000ALLEGREX_VF_S633, + RABBITIZER_REG_R4000ALLEGREX_VF_S703, + RABBITIZER_REG_R4000ALLEGREX_VF_S713, + RABBITIZER_REG_R4000ALLEGREX_VF_S723, + RABBITIZER_REG_R4000ALLEGREX_VF_S733, +} RabbitizerRegister_R4000AllegrexVF; typedef enum RabbitizerRegister_R5900VF { RABBITIZER_REG_R5900_VF_vf0, RABBITIZER_REG_R5900_VF_vf1, diff --git a/include/instructions/RabbitizerRegister.h b/include/instructions/RabbitizerRegister.h index 2387d19e..64fc2c50 100644 --- a/include/instructions/RabbitizerRegister.h +++ b/include/instructions/RabbitizerRegister.h @@ -31,6 +31,7 @@ extern const char *RabbitizerRegister_RspCop0_Names[][2]; extern const char *RabbitizerRegister_RspCop2_Names[][2]; extern const char *RabbitizerRegister_RspCop2Control_Names[][2]; extern const char *RabbitizerRegister_RspVector_Names[][2]; +extern const char *RabbitizerRegister_R4000AllegrexVF_Names[][2]; extern const char *RabbitizerRegister_R5900VF_Names[][2]; extern const char *RabbitizerRegister_R5900VI_Names[][2]; @@ -57,6 +58,9 @@ const char *RabbitizerRegister_getNameRspCop2Control(uint8_t regValue); NODISCARD PURE RETURNS_NON_NULL const char *RabbitizerRegister_getNameRspVector(uint8_t regValue); +NODISCARD PURE RETURNS_NON_NULL +const char *RabbitizerRegister_getNameR4000AllegrexVF(uint8_t regValue); + NODISCARD PURE RETURNS_NON_NULL const char *RabbitizerRegister_getNameR5900VF(uint8_t regValue); NODISCARD PURE RETURNS_NON_NULL @@ -86,6 +90,9 @@ const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_RspCop2Cont NODISCARD PURE RETURNS_NON_NULL const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_RspVector(uint8_t regValue); +NODISCARD PURE RETURNS_NON_NULL +const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_R4000AllegrexVF(uint8_t regValue); + NODISCARD PURE RETURNS_NON_NULL const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_R5900VF(uint8_t regValue); NODISCARD PURE RETURNS_NON_NULL diff --git a/include/instructions/RabbitizerRegisterDescriptor.h b/include/instructions/RabbitizerRegisterDescriptor.h index e5740c61..aa650de1 100644 --- a/include/instructions/RabbitizerRegisterDescriptor.h +++ b/include/instructions/RabbitizerRegisterDescriptor.h @@ -51,6 +51,12 @@ extern const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descripto /* RSP */ +/* R4000ALLEGREX */ + +extern const RabbitizerRegisterDescriptor RabbitizerRegister_R4000AllegrexVF_Descriptors[]; + +/* R4000ALLEGREX */ + /* R5900 */ extern const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[]; diff --git a/rabbitizer/enums/registers/rabbitizer_enum_Cop1N32.c b/rabbitizer/enums/registers/rabbitizer_enum_Cop1N32.c index 2403a0bf..37e2ce05 100644 --- a/rabbitizer/enums/registers/rabbitizer_enum_Cop1N32.c +++ b/rabbitizer/enums/registers/rabbitizer_enum_Cop1N32.c @@ -9,7 +9,10 @@ { "RegCop1N32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - { "RegCop1N32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) RabbitizerEnumMetadata rabbitizer_enum_RegCop1N32_enumvalues[] = { #include "tables/registers/RabbitizerRegister_Cop1N32.inc" @@ -19,6 +22,7 @@ RabbitizerEnumMetadata rabbitizer_enum_RegCop1N32_enumvalues[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR static PyMethodDef rabbitizer_enum_RegCop1N32_methods[] = { diff --git a/rabbitizer/enums/registers/rabbitizer_enum_Cop1N64.c b/rabbitizer/enums/registers/rabbitizer_enum_Cop1N64.c index d01ba4b9..ed5a7bb0 100644 --- a/rabbitizer/enums/registers/rabbitizer_enum_Cop1N64.c +++ b/rabbitizer/enums/registers/rabbitizer_enum_Cop1N64.c @@ -9,7 +9,10 @@ { "RegCop1N64", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - { "RegCop1N64", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) RabbitizerEnumMetadata rabbitizer_enum_RegCop1N64_enumvalues[] = { #include "tables/registers/RabbitizerRegister_Cop1N64.inc" @@ -19,6 +22,7 @@ RabbitizerEnumMetadata rabbitizer_enum_RegCop1N64_enumvalues[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR static PyMethodDef rabbitizer_enum_RegCop1N64_methods[] = { diff --git a/rabbitizer/enums/registers/rabbitizer_enum_Cop1O32.c b/rabbitizer/enums/registers/rabbitizer_enum_Cop1O32.c index eb97e1c8..9ab75f63 100644 --- a/rabbitizer/enums/registers/rabbitizer_enum_Cop1O32.c +++ b/rabbitizer/enums/registers/rabbitizer_enum_Cop1O32.c @@ -9,7 +9,10 @@ { "RegCop1O32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - { "RegCop1O32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) RabbitizerEnumMetadata rabbitizer_enum_RegCop1O32_enumvalues[] = { #include "tables/registers/RabbitizerRegister_Cop1O32.inc" @@ -19,6 +22,7 @@ RabbitizerEnumMetadata rabbitizer_enum_RegCop1O32_enumvalues[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR static PyMethodDef rabbitizer_enum_RegCop1O32_methods[] = { diff --git a/rabbitizer/enums/registers/rabbitizer_enum_GprN32.c b/rabbitizer/enums/registers/rabbitizer_enum_GprN32.c index 4e67f97e..b8faddb9 100644 --- a/rabbitizer/enums/registers/rabbitizer_enum_GprN32.c +++ b/rabbitizer/enums/registers/rabbitizer_enum_GprN32.c @@ -9,7 +9,10 @@ { "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - { "RegGprN32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) RabbitizerEnumMetadata rabbitizer_enum_RegGprN32_enumvalues[] = { #include "tables/registers/RabbitizerRegister_GprN32.inc" @@ -19,6 +22,7 @@ RabbitizerEnumMetadata rabbitizer_enum_RegGprN32_enumvalues[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR static PyMethodDef rabbitizer_enum_RegGprN32_methods[] = { diff --git a/rabbitizer/enums/registers/rabbitizer_enum_GprO32.c b/rabbitizer/enums/registers/rabbitizer_enum_GprO32.c index 558ac730..98397473 100644 --- a/rabbitizer/enums/registers/rabbitizer_enum_GprO32.c +++ b/rabbitizer/enums/registers/rabbitizer_enum_GprO32.c @@ -9,7 +9,10 @@ { "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - { "RegGprO32", #name, RABBITIZER_REG_##prefix##_##name, false, NULL }, + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VARGS__) RabbitizerEnumMetadata rabbitizer_enum_RegGprO32_enumvalues[] = { #include "tables/registers/RabbitizerRegister_GprO32.inc" @@ -19,6 +22,7 @@ RabbitizerEnumMetadata rabbitizer_enum_RegGprO32_enumvalues[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR static PyMethodDef rabbitizer_enum_RegGprO32_methods[] = { diff --git a/rust/src/registers_enum.rs b/rust/src/registers_enum.rs index d01d3f8b..2ac1979d 100644 --- a/rust/src/registers_enum.rs +++ b/rust/src/registers_enum.rs @@ -486,6 +486,140 @@ pub mod registers { #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] #[allow(non_camel_case_types)] #[derive(num_enum::TryFromPrimitive, num_enum::IntoPrimitive)] + pub enum R4000AllegrexVF { + S000, + S010, + S020, + S030, + S100, + S110, + S120, + S130, + S200, + S210, + S220, + S230, + S300, + S310, + S320, + S330, + S400, + S410, + S420, + S430, + S500, + S510, + S520, + S530, + S600, + S610, + S620, + S630, + S700, + S710, + S720, + S730, + S001, + S011, + S021, + S031, + S101, + S111, + S121, + S131, + S201, + S211, + S221, + S231, + S301, + S311, + S321, + S331, + S401, + S411, + S421, + S431, + S501, + S511, + S521, + S531, + S601, + S611, + S621, + S631, + S701, + S711, + S721, + S731, + S002, + S012, + S022, + S032, + S102, + S112, + S122, + S132, + S202, + S212, + S222, + S232, + S302, + S312, + S322, + S332, + S402, + S412, + S422, + S432, + S502, + S512, + S522, + S532, + S602, + S612, + S622, + S632, + S702, + S712, + S722, + S732, + S003, + S013, + S023, + S033, + S103, + S113, + S123, + S133, + S203, + S213, + S223, + S233, + S303, + S313, + S323, + S333, + S403, + S413, + S423, + S433, + S503, + S513, + S523, + S533, + S603, + S613, + S623, + S633, + S703, + S713, + S723, + S733, + } + #[repr(u32)] + #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] + #[allow(non_camel_case_types)] + #[derive(num_enum::TryFromPrimitive, num_enum::IntoPrimitive)] pub enum R5900VF { vf0, vf1, diff --git a/rust/src/registers_methods.rs b/rust/src/registers_methods.rs index e6664d9d..bcf6be9d 100644 --- a/rust/src/registers_methods.rs +++ b/rust/src/registers_methods.rs @@ -19,6 +19,8 @@ extern "C" { pub static mut RabbitizerRegister_RspCop2Control_Names: [[*const core::ffi::c_char; 2usize]; 0usize]; pub static mut RabbitizerRegister_RspVector_Names: [[*const core::ffi::c_char; 2usize]; 0usize]; + pub static mut RabbitizerRegister_R4000AllegrexVF_Names: + [[*const core::ffi::c_char; 2usize]; 0usize]; pub static mut RabbitizerRegister_R5900VF_Names: [[*const core::ffi::c_char; 2usize]; 0usize]; pub static mut RabbitizerRegister_R5900VI_Names: [[*const core::ffi::c_char; 2usize]; 0usize]; @@ -58,6 +60,8 @@ extern "C" { /* RSP */ + pub static mut RabbitizerRegister_R4000AllegrexVF_Descriptors: [RegisterDescriptor; 0usize]; + /* R5900 */ pub static mut RabbitizerRegister_R5900VF_Descriptors: [RegisterDescriptor; 0usize]; @@ -300,6 +304,26 @@ impl registers_enum::registers::RspVector { } } +impl registers_enum::registers::R4000AllegrexVF { + pub fn name(self) -> &'static str { + let reg_value: u32 = self.into(); + + unsafe { + std::ffi::CStr::from_ptr( + RabbitizerRegister_R4000AllegrexVF_Names[reg_value as usize][1], + ) + .to_str() + .unwrap() + } + } + + pub fn descriptor(&self) -> &RegisterDescriptor { + let reg_value: u32 = (*self).into(); + + unsafe { RabbitizerRegister_R4000AllegrexVF_Descriptors.get_unchecked(reg_value as usize) } + } +} + impl registers_enum::registers::R5900VF { pub fn name(self) -> &'static str { let reg_value: u32 = self.into(); diff --git a/src/instructions/RabbitizerInstructionR4000Allegrex/RabbitizerInstructionR4000Allegrex_OperandType.c b/src/instructions/RabbitizerInstructionR4000Allegrex/RabbitizerInstructionR4000Allegrex_OperandType.c index e53ce690..c70d33ea 100644 --- a/src/instructions/RabbitizerInstructionR4000Allegrex/RabbitizerInstructionR4000Allegrex_OperandType.c +++ b/src/instructions/RabbitizerInstructionR4000Allegrex/RabbitizerInstructionR4000Allegrex_OperandType.c @@ -66,7 +66,8 @@ size_t RabbitizerOperandType_process_r4000allegrex_size_plus_pos(const Rabbitize } size_t RabbitizerOperandType_process_r4000allegrex_imm3(const RabbitizerInstruction *self, char *dst, - UNUSED const char *immOverride, UNUSED size_t immOverrideLength) { + UNUSED const char *immOverride, + UNUSED size_t immOverrideLength) { size_t totalSize = 0; uint32_t temp = RAB_INSTR_R4000ALLEGREX_GET_imm3(self); @@ -83,7 +84,7 @@ size_t RabbitizerOperandType_process_r4000allegrex_imm3(const RabbitizerInstruct } size_t RabbitizerOperandType_process_r4000allegrex_offset14(const RabbitizerInstruction *self, char *dst, - const char *immOverride, size_t immOverrideLength) { + const char *immOverride, size_t immOverrideLength) { size_t totalSize = 0; int32_t number; @@ -129,8 +130,9 @@ size_t RabbitizerOperandType_process_r4000allegrex_offset14_base(const Rabbitize RABUTILS_BUFFER_ADVANCE(dst, totalSize, RabbitizerOperandType_process_r4000allegrex_offset14(self, dst, immOverride, immOverrideLength)); } #endif - RABUTILS_BUFFER_ADVANCE(dst, totalSize, - RabbitizerOperandType_process_r4000allegrex_offset14(self, dst, immOverride, immOverrideLength)); + RABUTILS_BUFFER_ADVANCE( + dst, totalSize, + RabbitizerOperandType_process_r4000allegrex_offset14(self, dst, immOverride, immOverrideLength)); RABUTILS_BUFFER_WRITE_CHAR(dst, totalSize, '('); RABUTILS_BUFFER_ADVANCE(dst, totalSize, @@ -141,11 +143,13 @@ size_t RabbitizerOperandType_process_r4000allegrex_offset14_base(const Rabbitize } size_t RabbitizerOperandType_process_r4000allegrex_offset14_base_maybe_wb(const RabbitizerInstruction *self, char *dst, - const char *immOverride, size_t immOverrideLength) { + const char *immOverride, + size_t immOverrideLength) { size_t totalSize = 0; - RABUTILS_BUFFER_ADVANCE(dst, totalSize, - RabbitizerOperandType_process_r4000allegrex_offset14_base(self, dst, immOverride, immOverrideLength)); + RABUTILS_BUFFER_ADVANCE( + dst, totalSize, + RabbitizerOperandType_process_r4000allegrex_offset14_base(self, dst, immOverride, immOverrideLength)); if (RAB_INSTR_R4000ALLEGREX_GET_wb(self)) { RABUTILS_BUFFER_CPY(dst, totalSize, ", wb"); @@ -166,7 +170,8 @@ size_t RabbitizerOperandType_process_r4000allegrex_vfs(const RabbitizerInstructi #endif size_t RabbitizerOperandType_process_r4000allegrex_vt_6(const RabbitizerInstruction *self, char *dst, - UNUSED const char *immOverride, UNUSED size_t immOverrideLength) { + UNUSED const char *immOverride, + UNUSED size_t immOverrideLength) { size_t totalSize = 0; // TODO #if 0 @@ -181,16 +186,13 @@ size_t RabbitizerOperandType_process_r4000allegrex_vt_6(const RabbitizerInstruct } size_t RabbitizerOperandType_process_r4000allegrex_vt_7(const RabbitizerInstruction *self, char *dst, - UNUSED const char *immOverride, UNUSED size_t immOverrideLength) { + UNUSED const char *immOverride, + UNUSED size_t immOverrideLength) { size_t totalSize = 0; - // TODO -#if 0 const char *reg = RabbitizerRegister_getNameR4000AllegrexVF(RAB_INSTR_R4000ALLEGREX_GET_vt_7(self)); RABUTILS_BUFFER_CPY(dst, totalSize, reg); -#else - RABUTILS_BUFFER_SPRINTF(dst, totalSize, "0x%X", RAB_INSTR_R4000ALLEGREX_GET_vt_7(self)); -#endif + return totalSize; } diff --git a/src/instructions/RabbitizerRegister.c b/src/instructions/RabbitizerRegister.c index a2bdd3fe..557cf919 100644 --- a/src/instructions/RabbitizerRegister.c +++ b/src/instructions/RabbitizerRegister.c @@ -101,6 +101,12 @@ const char *RabbitizerRegister_getNameRspVector(uint8_t regValue) { return RabbitizerRegister_RspVector_Names[regValue][RabbitizerConfig_Cfg.regNames.namedRegisters ? 1 : 0]; } +const char *RabbitizerRegister_getNameR4000AllegrexVF(uint8_t regValue) { + assert(regValue < ARRAY_COUNT(RabbitizerRegister_R4000AllegrexVF_Names)); + + return RabbitizerRegister_R4000AllegrexVF_Names[regValue][RabbitizerConfig_Cfg.regNames.namedRegisters ? 1 : 0]; +} + const char *RabbitizerRegister_getNameR5900VF(uint8_t regValue) { assert(regValue < ARRAY_COUNT(RabbitizerRegister_R5900VF_Names)); @@ -186,6 +192,12 @@ const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_RspVector(u return &RabbitizerRegister_RspVector_Descriptors[regValue]; } +const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_R4000AllegrexVF(uint8_t regValue) { + assert(regValue < ARRAY_COUNT(RabbitizerRegister_R4000AllegrexVF_Names)); + + return &RabbitizerRegister_R4000AllegrexVF_Descriptors[regValue]; +} + const RabbitizerRegisterDescriptor *RabbitizerRegister_getDescriptor_R5900VF(uint8_t regValue) { assert(regValue < ARRAY_COUNT(RabbitizerRegister_R5900VF_Names)); diff --git a/tables/tables/registers/RabbitizerRegister_R4000AllegrexVF.inc b/tables/tables/registers/RabbitizerRegister_R4000AllegrexVF.inc new file mode 100644 index 00000000..e6f3b784 --- /dev/null +++ b/tables/tables/registers/RabbitizerRegister_R4000AllegrexVF.inc @@ -0,0 +1,515 @@ +/* SPDX-FileCopyrightText: © 2022-2024 Decompollaborate */ +/* SPDX-License-Identifier: MIT */ + + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S000, S000, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S010, S010, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S020, S020, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S030, S030, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S100, S100, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S110, S110, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S120, S120, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S130, S130, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S200, S200, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S210, S210, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S220, S220, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S230, S230, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S300, S300, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S310, S310, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S320, S320, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S330, S330, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S400, S400, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S410, S410, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S420, S420, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S430, S430, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S500, S500, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S510, S510, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S520, S520, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S530, S530, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S600, S600, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S610, S610, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S620, S620, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S630, S630, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S700, S700, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S710, S710, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S720, S720, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S730, S730, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S001, S001, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S011, S011, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S021, S021, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S031, S031, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S101, S101, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S111, S111, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S121, S121, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S131, S131, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S201, S201, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S211, S211, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S221, S221, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S231, S231, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S301, S301, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S311, S311, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S321, S321, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S331, S331, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S401, S401, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S411, S411, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S421, S421, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S431, S431, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S501, S501, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S511, S511, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S521, S521, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S531, S531, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S601, S601, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S611, S611, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S621, S621, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S631, S631, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S701, S701, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S711, S711, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S721, S721, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S731, S731, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S002, S002, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S012, S012, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S022, S022, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S032, S032, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S102, S102, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S112, S112, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S122, S122, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S132, S132, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S202, S202, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S212, S212, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S222, S222, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S232, S232, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S302, S302, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S312, S312, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S322, S322, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S332, S332, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S402, S402, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S412, S412, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S422, S422, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S432, S432, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S502, S502, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S512, S512, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S522, S522, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S532, S532, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S602, S602, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S612, S612, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S622, S622, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S632, S632, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S702, S702, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S712, S712, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S722, S722, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S732, S732, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S003, S003, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S013, S013, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S023, S023, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S033, S033, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S103, S103, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S113, S113, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S123, S123, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S133, S133, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S203, S203, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S213, S213, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S223, S223, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S233, S233, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S303, S303, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S313, S313, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S323, S323, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S333, S333, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S403, S403, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S413, S413, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S423, S423, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S433, S433, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S503, S503, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S513, S513, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S523, S523, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S533, S533, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S603, S603, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S613, S613, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S623, S623, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S633, S633, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S703, S703, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S713, S713, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S723, S723, + 0 + ) + RABBITIZER_DEF_REG_NONODOLLAR( + R4000ALLEGREX_VF, S733, S733, + 0 + ) diff --git a/tables/templates/c/RegisterDescriptor_Descriptors_arrays.table.template b/tables/templates/c/RegisterDescriptor_Descriptors_arrays.table.template index 476c7da8..8cdfaf3e 100644 --- a/tables/templates/c/RegisterDescriptor_Descriptors_arrays.table.template +++ b/tables/templates/c/RegisterDescriptor_Descriptors_arrays.table.template @@ -7,6 +7,9 @@ #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + const RabbitizerRegisterDescriptor RabbitizerRegister_GprO32_Descriptors[] = { #include "registers/RabbitizerRegister_GprO32.inc" }; @@ -63,6 +66,14 @@ const RabbitizerRegisterDescriptor RabbitizerRegister_RspVector_Descriptors[] = /* RSP */ +/* R4000ALLEGREX */ + +const RabbitizerRegisterDescriptor RabbitizerRegister_R4000AllegrexVF_Descriptors[] = { +#include "registers/RabbitizerRegister_R4000AllegrexVF.inc" +}; + +/* R4000ALLEGREX */ + /* R5900 */ const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VF_Descriptors[] = { @@ -77,3 +88,4 @@ const RabbitizerRegisterDescriptor RabbitizerRegister_R5900VI_Descriptors[] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR diff --git a/tables/templates/c/Registers_Names_arrays.table.template b/tables/templates/c/Registers_Names_arrays.table.template index bb26155b..d65c15f8 100644 --- a/tables/templates/c/Registers_Names_arrays.table.template +++ b/tables/templates/c/Registers_Names_arrays.table.template @@ -7,6 +7,9 @@ #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ [RABBITIZER_REG_##prefix##_##name] = { "$" #numeric, #name }, +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + [RABBITIZER_REG_##prefix##_##name] = { #numeric, #name }, + // numeric, named const char *RabbitizerRegister_GprO32_Names[][2] = { @@ -65,6 +68,14 @@ const char *RabbitizerRegister_RspVector_Names[][2] = { /* RSP */ +/* R4000ALLEGREX */ + +const char *RabbitizerRegister_R4000AllegrexVF_Names[][2] = { +#include "registers/RabbitizerRegister_R4000AllegrexVF.inc" +}; + +/* R4000ALLEGREX */ + /* R5900 */ const char *RabbitizerRegister_R5900VF_Names[][2] = { @@ -79,3 +90,4 @@ const char *RabbitizerRegister_R5900VI_Names[][2] = { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR diff --git a/tables/templates/c/Registers_enums.table.template b/tables/templates/c/Registers_enums.table.template index 077f8244..484f0077 100644 --- a/tables/templates/c/Registers_enums.table.template +++ b/tables/templates/c/Registers_enums.table.template @@ -7,6 +7,9 @@ #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_REG_##prefix##_##name, +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + typedef enum RabbitizerRegister_GprO32 { #include "registers/RabbitizerRegister_GprO32.inc" @@ -66,6 +69,14 @@ typedef enum RabbitizerRegister_RspVector { /* RSP */ +/* R4000ALLEGREX */ + +typedef enum RabbitizerRegister_R4000AllegrexVF { + #include "registers/RabbitizerRegister_R4000AllegrexVF.inc" +} RabbitizerRegister_R4000AllegrexVF; + +/* R4000ALLEGREX */ + /* R5900 */ typedef enum RabbitizerRegister_R5900VF { @@ -81,3 +92,4 @@ typedef enum RabbitizerRegister_R5900VI { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR diff --git a/tables/templates/cplusplus/Registers_enum_classes.table.template b/tables/templates/cplusplus/Registers_enum_classes.table.template index 8df892de..32b66db5 100644 --- a/tables/templates/cplusplus/Registers_enum_classes.table.template +++ b/tables/templates/cplusplus/Registers_enum_classes.table.template @@ -5,7 +5,10 @@ prefix##_##name, #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ - prefix##_##name, + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) namespace Cpu { enum class GprO32 { @@ -66,6 +69,12 @@ }; }; + namespace R4000Allegrex { + enum class VF { + #include "registers/RabbitizerRegister_R4000AllegrexVF.inc" + }; + }; + namespace R5900 { enum class VF { #include "registers/RabbitizerRegister_R5900VF.inc" @@ -78,3 +87,4 @@ #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR diff --git a/tables/templates/python/RegCop1N32.tablepyi.template b/tables/templates/python/RegCop1N32.tablepyi.template index 397a632c..154ca5b7 100644 --- a/tables/templates/python/RegCop1N32.tablepyi.template +++ b/tables/templates/python/RegCop1N32.tablepyi.template @@ -11,8 +11,12 @@ from .Enum import Enum #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + class RegCop1N32: #include "registers/RabbitizerRegister_Cop1N32.inc" #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR #undef RABBITIZER_DEF_REG diff --git a/tables/templates/python/RegCop1N64.tablepyi.template b/tables/templates/python/RegCop1N64.tablepyi.template index 70998a7d..8f65b867 100644 --- a/tables/templates/python/RegCop1N64.tablepyi.template +++ b/tables/templates/python/RegCop1N64.tablepyi.template @@ -11,8 +11,12 @@ from .Enum import Enum #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + class RegCop1N64: #include "registers/RabbitizerRegister_Cop1N64.inc" #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR #undef RABBITIZER_DEF_REG diff --git a/tables/templates/python/RegCop1O32.tablepyi.template b/tables/templates/python/RegCop1O32.tablepyi.template index 22428de4..0c0c2e6a 100644 --- a/tables/templates/python/RegCop1O32.tablepyi.template +++ b/tables/templates/python/RegCop1O32.tablepyi.template @@ -11,8 +11,12 @@ from .Enum import Enum #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + class RegCop1O32: #include "registers/RabbitizerRegister_Cop1O32.inc" #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR #undef RABBITIZER_DEF_REG diff --git a/tables/templates/python/RegGprN32.tablepyi.template b/tables/templates/python/RegGprN32.tablepyi.template index 64a1ad7b..5e72b26a 100644 --- a/tables/templates/python/RegGprN32.tablepyi.template +++ b/tables/templates/python/RegGprN32.tablepyi.template @@ -11,8 +11,12 @@ from .Enum import Enum #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + class RegGprN32: #include "registers/RabbitizerRegister_GprN32.inc" #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR #undef RABBITIZER_DEF_REG diff --git a/tables/templates/python/RegGprO32.tablepyi.template b/tables/templates/python/RegGprO32.tablepyi.template index fc8dd893..bef4357d 100644 --- a/tables/templates/python/RegGprO32.tablepyi.template +++ b/tables/templates/python/RegGprO32.tablepyi.template @@ -8,6 +8,9 @@ from .Enum import Enum #define RABBITIZER_DEF_REG(prefix, name, numeric, ...) \ name: Enum +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) @@ -15,4 +18,5 @@ class RegGprO32: #include "registers/RabbitizerRegister_GprO32.inc" #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR #undef RABBITIZER_DEF_REG diff --git a/tables/templates/rust/registers_enum.tablers.template b/tables/templates/rust/registers_enum.tablers.template index e289123a..aa91f106 100644 --- a/tables/templates/rust/registers_enum.tablers.template +++ b/tables/templates/rust/registers_enum.tablers.template @@ -11,6 +11,9 @@ #define RABBITIZER_DEF_REG_NODOLLAR(prefix, name, numeric, ...) \ RABBITIZER_DEF_REG(prefix, name, numeric) +#define RABBITIZER_DEF_REG_NONODOLLAR(prefix, name, numeric, ...) \ + RABBITIZER_DEF_REG(prefix, name, numeric, __VA_ARGS__) + pub mod registers { SPECIAL_RS_TAG(repr(u32)) SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq)) @@ -142,6 +145,18 @@ pub mod registers { /* RSP */ + /* R4000ALLEGREX */ + + SPECIAL_RS_TAG(repr(u32)) + SPECIAL_RS_TAG(derive(Debug, Copy, Clone, Hash, PartialEq, Eq)) + SPECIAL_RS_TAG(allow(non_camel_case_types)) + SPECIAL_RS_TAG(derive(num_enum::TryFromPrimitive, num_enum::IntoPrimitive)) + pub enum R4000AllegrexVF { + #include "registers/RabbitizerRegister_R4000AllegrexVF.inc" + } + + /* R4000ALLEGREX */ + /* R5900 */ SPECIAL_RS_TAG(repr(u32)) @@ -165,3 +180,4 @@ pub mod registers { #undef RABBITIZER_DEF_REG #undef RABBITIZER_DEF_REG_NODOLLAR +#undef RABBITIZER_DEF_REG_NONODOLLAR