mirror of
https://github.com/Decompollaborate/rabbitizer.git
synced 2025-02-26 09:41:07 +00:00
Fix pmfhl
and pmthl
missing the .fmt
specifier
This commit is contained in:
parent
2c5e2cfc26
commit
ef2598d2c7
@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
- Implement the `rfe` ("Restore From Exception") instruction.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix `pmfhl` and `pmthl` missing the `.fmt` specifier.
|
||||
|
||||
## [1.11.1] - 2024-07-12
|
||||
|
||||
### Added
|
||||
|
@ -103,6 +103,8 @@ enum class IdType {
|
||||
R5900_MMI_1,
|
||||
R5900_MMI_2,
|
||||
R5900_MMI_3,
|
||||
R5900_MMI_PMFHL,
|
||||
R5900_MMI_PMTHL,
|
||||
ALL_MAX,
|
||||
};
|
||||
|
||||
|
@ -799,8 +799,6 @@ enum class UniqueId {
|
||||
r5900_divu1,
|
||||
r5900_madd1,
|
||||
r5900_maddu1,
|
||||
r5900_pmfhl,
|
||||
r5900_pmthl,
|
||||
r5900_psllh,
|
||||
r5900_psrlh,
|
||||
r5900_psrah,
|
||||
@ -885,6 +883,12 @@ enum class UniqueId {
|
||||
r5900_pexch,
|
||||
r5900_pcpyh,
|
||||
r5900_pexcw,
|
||||
r5900_pmfhl_lw,
|
||||
r5900_pmfhl_uw,
|
||||
r5900_pmfhl_slw,
|
||||
r5900_pmfhl_lh,
|
||||
r5900_pmfhl_sh,
|
||||
r5900_pmthl_lw,
|
||||
r5900_ei,
|
||||
r5900_di,
|
||||
r5900_c1__sqrt_s,
|
||||
|
@ -799,8 +799,6 @@ const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[] = {
|
||||
[RABBITIZER_INSTR_ID_r5900_divu1] = { .operands={RAB_OPERAND_cpu_zero, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_madd1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu1] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rs, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRs=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psllh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_psrah] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa}, .modifiesRd=true, .readsRt=true },
|
||||
@ -885,6 +883,12 @@ const RabbitizerInstrDescriptor RabbitizerInstrDescriptor_Descriptors[] = {
|
||||
[RABBITIZER_INSTR_ID_r5900_pexch] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyh] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pexcw] = { .operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt}, .modifiesRd=true, .readsRt=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_lw] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_uw] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_slw] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_lh] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_sh] = { .operands={RAB_OPERAND_cpu_rd}, .modifiesRd=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl_lw] = { .operands={RAB_OPERAND_cpu_rs}, .readsRs=true },
|
||||
[RABBITIZER_INSTR_ID_r5900_ei] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_di] = { .operands={0} },
|
||||
[RABBITIZER_INSTR_ID_r5900_c1__sqrt_s] = { .operands={RAB_OPERAND_cpu_copraw} },
|
||||
|
2
include/generated/InstrIdType_Names_array.h
generated
2
include/generated/InstrIdType_Names_array.h
generated
@ -103,6 +103,8 @@ const char *RabInstrIdType_Names[] = {
|
||||
[RAB_INSTR_ID_TYPE_R5900_MMI_1] = "R5900" "_" "MMI_1",
|
||||
[RAB_INSTR_ID_TYPE_R5900_MMI_2] = "R5900" "_" "MMI_2",
|
||||
[RAB_INSTR_ID_TYPE_R5900_MMI_3] = "R5900" "_" "MMI_3",
|
||||
[RAB_INSTR_ID_TYPE_R5900_MMI_PMFHL] = "R5900" "_" "MMI_PMFHL",
|
||||
[RAB_INSTR_ID_TYPE_R5900_MMI_PMTHL] = "R5900" "_" "MMI_PMTHL",
|
||||
[RAB_INSTR_ID_TYPE_ALL_MAX] = "ALL" "_" "MAX",
|
||||
};
|
||||
|
||||
|
2
include/generated/InstrIdType_enum.h
generated
2
include/generated/InstrIdType_enum.h
generated
@ -103,6 +103,8 @@ typedef enum RabInstrIdType {
|
||||
RAB_INSTR_ID_TYPE_R5900_MMI_1,
|
||||
RAB_INSTR_ID_TYPE_R5900_MMI_2,
|
||||
RAB_INSTR_ID_TYPE_R5900_MMI_3,
|
||||
RAB_INSTR_ID_TYPE_R5900_MMI_PMFHL,
|
||||
RAB_INSTR_ID_TYPE_R5900_MMI_PMTHL,
|
||||
RAB_INSTR_ID_TYPE_ALL_MAX,
|
||||
} RabInstrIdType;
|
||||
|
||||
|
8
include/generated/InstrId_Names_array.h
generated
8
include/generated/InstrId_Names_array.h
generated
@ -799,8 +799,6 @@ const char *RabbitizerInstrId_Names[] = {
|
||||
[RABBITIZER_INSTR_ID_r5900_divu1] = "divu1",
|
||||
[RABBITIZER_INSTR_ID_r5900_madd1] = "madd1",
|
||||
[RABBITIZER_INSTR_ID_r5900_maddu1] = "maddu1",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl] = "pmfhl",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl] = "pmthl",
|
||||
[RABBITIZER_INSTR_ID_r5900_psllh] = "psllh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrlh] = "psrlh",
|
||||
[RABBITIZER_INSTR_ID_r5900_psrah] = "psrah",
|
||||
@ -885,6 +883,12 @@ const char *RabbitizerInstrId_Names[] = {
|
||||
[RABBITIZER_INSTR_ID_r5900_pexch] = "pexch",
|
||||
[RABBITIZER_INSTR_ID_r5900_pcpyh] = "pcpyh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pexcw] = "pexcw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_lw] = "pmfhl.lw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_uw] = "pmfhl.uw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_slw] = "pmfhl.slw",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_lh] = "pmfhl.lh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmfhl_sh] = "pmfhl.sh",
|
||||
[RABBITIZER_INSTR_ID_r5900_pmthl_lw] = "pmthl.lw",
|
||||
[RABBITIZER_INSTR_ID_r5900_ei] = "ei",
|
||||
[RABBITIZER_INSTR_ID_r5900_di] = "di",
|
||||
[RABBITIZER_INSTR_ID_r5900_c1__sqrt_s] = "c1",
|
||||
|
8
include/generated/InstrId_enum.h
generated
8
include/generated/InstrId_enum.h
generated
@ -799,8 +799,6 @@ typedef enum RabbitizerInstrId {
|
||||
RABBITIZER_INSTR_ID_r5900_divu1,
|
||||
RABBITIZER_INSTR_ID_r5900_madd1,
|
||||
RABBITIZER_INSTR_ID_r5900_maddu1,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl,
|
||||
RABBITIZER_INSTR_ID_r5900_pmthl,
|
||||
RABBITIZER_INSTR_ID_r5900_psllh,
|
||||
RABBITIZER_INSTR_ID_r5900_psrlh,
|
||||
RABBITIZER_INSTR_ID_r5900_psrah,
|
||||
@ -885,6 +883,12 @@ typedef enum RabbitizerInstrId {
|
||||
RABBITIZER_INSTR_ID_r5900_pexch,
|
||||
RABBITIZER_INSTR_ID_r5900_pcpyh,
|
||||
RABBITIZER_INSTR_ID_r5900_pexcw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl_lw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl_uw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl_slw,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl_lh,
|
||||
RABBITIZER_INSTR_ID_r5900_pmfhl_sh,
|
||||
RABBITIZER_INSTR_ID_r5900_pmthl_lw,
|
||||
RABBITIZER_INSTR_ID_r5900_ei,
|
||||
RABBITIZER_INSTR_ID_r5900_di,
|
||||
RABBITIZER_INSTR_ID_r5900_c1__sqrt_s,
|
||||
|
8
rabbitizer/InstrId.pyi
generated
8
rabbitizer/InstrId.pyi
generated
@ -720,8 +720,6 @@ class InstrId:
|
||||
r5900_divu1: Enum
|
||||
r5900_madd1: Enum
|
||||
r5900_maddu1: Enum
|
||||
r5900_pmfhl: Enum
|
||||
r5900_pmthl: Enum
|
||||
r5900_psllh: Enum
|
||||
r5900_psrlh: Enum
|
||||
r5900_psrah: Enum
|
||||
@ -806,6 +804,12 @@ class InstrId:
|
||||
r5900_pexch: Enum
|
||||
r5900_pcpyh: Enum
|
||||
r5900_pexcw: Enum
|
||||
r5900_pmfhl_lw: Enum
|
||||
r5900_pmfhl_uw: Enum
|
||||
r5900_pmfhl_slw: Enum
|
||||
r5900_pmfhl_lh: Enum
|
||||
r5900_pmfhl_sh: Enum
|
||||
r5900_pmthl_lw: Enum
|
||||
r5900_ei: Enum
|
||||
r5900_di: Enum
|
||||
r5900_c1__sqrt_s: Enum
|
||||
|
2
rabbitizer/InstrIdType.pyi
generated
2
rabbitizer/InstrIdType.pyi
generated
@ -104,4 +104,6 @@ class InstrIdType:
|
||||
R5900_MMI_1: Enum
|
||||
R5900_MMI_2: Enum
|
||||
R5900_MMI_3: Enum
|
||||
R5900_MMI_PMFHL: Enum
|
||||
R5900_MMI_PMTHL: Enum
|
||||
ALL_MAX: Enum
|
||||
|
8
rust/src/instr_id_enum.rs
generated
8
rust/src/instr_id_enum.rs
generated
@ -799,8 +799,6 @@ pub enum InstrId {
|
||||
r5900_divu1,
|
||||
r5900_madd1,
|
||||
r5900_maddu1,
|
||||
r5900_pmfhl,
|
||||
r5900_pmthl,
|
||||
r5900_psllh,
|
||||
r5900_psrlh,
|
||||
r5900_psrah,
|
||||
@ -885,6 +883,12 @@ pub enum InstrId {
|
||||
r5900_pexch,
|
||||
r5900_pcpyh,
|
||||
r5900_pexcw,
|
||||
r5900_pmfhl_lw,
|
||||
r5900_pmfhl_uw,
|
||||
r5900_pmfhl_slw,
|
||||
r5900_pmfhl_lh,
|
||||
r5900_pmfhl_sh,
|
||||
r5900_pmthl_lw,
|
||||
r5900_ei,
|
||||
r5900_di,
|
||||
r5900_c1__sqrt_s,
|
||||
|
2
rust/src/instr_id_type_enum.rs
generated
2
rust/src/instr_id_type_enum.rs
generated
@ -103,5 +103,7 @@ pub enum InstrIdType {
|
||||
R5900_MMI_1,
|
||||
R5900_MMI_2,
|
||||
R5900_MMI_3,
|
||||
R5900_MMI_PMFHL,
|
||||
R5900_MMI_PMTHL,
|
||||
ALL_MAX,
|
||||
}
|
||||
|
@ -286,6 +286,28 @@ void RabbitizerInstructionR5900_processUniqueId_MMI_3(RabbitizerInstruction *sel
|
||||
}
|
||||
}
|
||||
|
||||
void RabbitizerInstructionR5900_processUniqueId_MMI_PMFHL(RabbitizerInstruction *self) {
|
||||
uint32_t function = RAB_INSTR_R5900_GET_mmi_function(self);
|
||||
|
||||
self->_mandatorybits = RAB_INSTR_R5900_PACK_mmi_function(self->_mandatorybits, function);
|
||||
self->instrIdType = RAB_INSTR_ID_TYPE_R5900_MMI_PMFHL;
|
||||
|
||||
switch (function) {
|
||||
#include "tables/instr_id/r5900/r5900_mmi_pmfhl.inc"
|
||||
}
|
||||
}
|
||||
|
||||
void RabbitizerInstructionR5900_processUniqueId_MMI_PMTHL(RabbitizerInstruction *self) {
|
||||
uint32_t function = RAB_INSTR_R5900_GET_mmi_function(self);
|
||||
|
||||
self->_mandatorybits = RAB_INSTR_R5900_PACK_mmi_function(self->_mandatorybits, function);
|
||||
self->instrIdType = RAB_INSTR_ID_TYPE_R5900_MMI_PMTHL;
|
||||
|
||||
switch (function) {
|
||||
#include "tables/instr_id/r5900/r5900_mmi_pmthl.inc"
|
||||
}
|
||||
}
|
||||
|
||||
void RabbitizerInstructionR5900_processUniqueId_MMI(RabbitizerInstruction *self) {
|
||||
uint32_t function = RAB_INSTR_GET_function(self);
|
||||
|
||||
@ -307,6 +329,13 @@ void RabbitizerInstructionR5900_processUniqueId_MMI(RabbitizerInstruction *self)
|
||||
case 0x29:
|
||||
RabbitizerInstructionR5900_processUniqueId_MMI_3(self);
|
||||
break;
|
||||
|
||||
case 0x30:
|
||||
RabbitizerInstructionR5900_processUniqueId_MMI_PMFHL(self);
|
||||
break;
|
||||
case 0x31:
|
||||
RabbitizerInstructionR5900_processUniqueId_MMI_PMTHL(self);
|
||||
break;
|
||||
}
|
||||
|
||||
self->descriptor = &RabbitizerInstrDescriptor_Descriptors[self->uniqueId];
|
||||
|
@ -16,6 +16,8 @@
|
||||
#include "r5900/r5900_mmi_1.inc"
|
||||
#include "r5900/r5900_mmi_2.inc"
|
||||
#include "r5900/r5900_mmi_3.inc"
|
||||
#include "r5900/r5900_mmi_pmfhl.inc"
|
||||
#include "r5900/r5900_mmi_pmthl.inc"
|
||||
|
||||
#include "r5900/r5900_cop0_tlb.inc"
|
||||
|
||||
|
@ -12,11 +12,15 @@
|
||||
011 | MULT1 | MULTU1| DIV1 | DIVU1 | --- | --- | --- | --- |
|
||||
100 | MADD1 | MADDU1| --- | --- | --- | --- | --- | --- |
|
||||
101 | *3 | *4 | --- | --- | --- | --- | --- | --- |
|
||||
110 | PMFHL | PMTHL | --- | --- | PSLLH | --- | PSRLH | PSRAH |
|
||||
110 | *5 | *6 | --- | --- | PSLLH | --- | PSRLH | PSRAH |
|
||||
111 | --- | --- | --- | --- | PSLLW | --- | PSRLW | PSRAW |
|
||||
hi |-------|-------|-------|-------|-------|-------|-------|-------|
|
||||
*1 = MMI0 list *2 = MMI2 list
|
||||
*3 = MMI1 list *4 = MMI3 list
|
||||
*1 = MMI0 list
|
||||
*2 = MMI2 list
|
||||
*3 = MMI1 list
|
||||
*4 = MMI3 list
|
||||
*5 = PMFHL list
|
||||
*6 = PMTHL list
|
||||
*/
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
@ -103,18 +107,6 @@
|
||||
.readsRt=true
|
||||
) // Multiply-ADD Unsigned word pipeline 1
|
||||
|
||||
// TODO: check this two instruction, it is supposed to have an extra .fmt
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
r5900, 0x30, pmfhl,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
r5900, 0x31, pmthl,
|
||||
.operands={RAB_OPERAND_cpu_rs},
|
||||
.readsRs=true
|
||||
) // Parallel Move To Hi/Lo register
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID(
|
||||
r5900, 0x34, psllh,
|
||||
.operands={RAB_OPERAND_cpu_rd, RAB_OPERAND_cpu_rt, RAB_OPERAND_cpu_sa},
|
||||
|
48
tables/tables/instr_id/r5900/r5900_mmi_pmfhl.inc
Normal file
48
tables/tables/instr_id/r5900/r5900_mmi_pmfhl.inc
Normal file
@ -0,0 +1,48 @@
|
||||
/* SPDX-FileCopyrightText: © 2024 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/*
|
||||
31---------26------------------------------10------6-5----------0
|
||||
|0 1 1 1 0 0| | fmt |1 1 0 0 0 0|
|
||||
------6----------------------------------------5----------6------
|
||||
|-------00------|-------01------|-------10------|-------11------|
|
||||
000 | PMFHL.LW | PMFHL.UW | PMFHL.SLW | PMFHL.LH |
|
||||
001 | PMFHL.SH | --- | --- | --- |
|
||||
010 | --- | --- | --- | --- |
|
||||
011 | --- | --- | --- | --- |
|
||||
100 | --- | --- | --- | --- |
|
||||
101 | --- | --- | --- | --- |
|
||||
110 | --- | --- | --- | --- |
|
||||
111 | --- | --- | --- | --- |
|
||||
hi |---------------|---------------|---------------|---------------|
|
||||
*/
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x00, pmfhl_lw, pmfhl.lw,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x01, pmfhl_uw, pmfhl.uw,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x02, pmfhl_slw, pmfhl.slw,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x03, pmfhl_lh, pmfhl.lh,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x04, pmfhl_sh, pmfhl.sh,
|
||||
.operands={RAB_OPERAND_cpu_rd},
|
||||
.modifiesRd=true
|
||||
) // Parallel Move From Hi/Lo register
|
24
tables/tables/instr_id/r5900/r5900_mmi_pmthl.inc
Normal file
24
tables/tables/instr_id/r5900/r5900_mmi_pmthl.inc
Normal file
@ -0,0 +1,24 @@
|
||||
/* SPDX-FileCopyrightText: © 2024 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
/*
|
||||
31---------26------------------------------10------6-5----------0
|
||||
|0 1 1 1 0 0| | fmt |1 1 0 0 0 1|
|
||||
------6----------------------------------------5----------6------
|
||||
|-------00------|-------01------|-------10------|-------11------|
|
||||
000 | PMTHL.LW | --- | --- | --- |
|
||||
001 | --- | --- | --- | --- |
|
||||
010 | --- | --- | --- | --- |
|
||||
011 | --- | --- | --- | --- |
|
||||
100 | --- | --- | --- | --- |
|
||||
101 | --- | --- | --- | --- |
|
||||
110 | --- | --- | --- | --- |
|
||||
111 | --- | --- | --- | --- |
|
||||
hi |---------------|---------------|---------------|---------------|
|
||||
*/
|
||||
|
||||
RABBITIZER_DEF_INSTR_ID_ALTNAME(
|
||||
r5900, 0x00, pmthl_lw, pmthl.lw,
|
||||
.operands={RAB_OPERAND_cpu_rs},
|
||||
.readsRs=true
|
||||
) // Parallel Move To Hi/Lo register
|
@ -25,3 +25,5 @@
|
||||
RABBITIZER_DEF_INSTR_ID_TYPE(R5900, MMI_1)
|
||||
RABBITIZER_DEF_INSTR_ID_TYPE(R5900, MMI_2)
|
||||
RABBITIZER_DEF_INSTR_ID_TYPE(R5900, MMI_3)
|
||||
RABBITIZER_DEF_INSTR_ID_TYPE(R5900, MMI_PMFHL)
|
||||
RABBITIZER_DEF_INSTR_ID_TYPE(R5900, MMI_PMTHL)
|
||||
|
24
tests/c/instruction_checks/r5900_disasm.c
Normal file
24
tests/c/instruction_checks/r5900_disasm.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* SPDX-FileCopyrightText: © 2024 Decompollaborate */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#include "rabbitizer.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "expected_disasm_utils.h"
|
||||
|
||||
#define TEST_ENTRY_C(word, imm, expected) TEST_ENTRY(RABBITIZER_INSTRCAT_R5900, word, imm, expected,)
|
||||
|
||||
// TODO: fill
|
||||
const TestEntry test_entries[] = {
|
||||
TEST_ENTRY_C(0x70001030, NULL, "pmfhl.lw $v0"),
|
||||
TEST_ENTRY_C(0x70001070, NULL, "pmfhl.uw $v0"),
|
||||
TEST_ENTRY_C(0x700010B0, NULL, "pmfhl.slw $v0"),
|
||||
TEST_ENTRY_C(0x700010F0, NULL, "pmfhl.lh $v0"),
|
||||
TEST_ENTRY_C(0x70001130, NULL, "pmfhl.sh $v0"),
|
||||
TEST_ENTRY_C(0x70000031, NULL, "pmthl.lw $zero"),
|
||||
};
|
||||
|
||||
size_t test_entries_len = ARRAY_COUNT(test_entries);
|
@ -12,3 +12,4 @@ set -e
|
||||
./build/tests/c/instruction_checks/r4000allegrex_vfpu_disasm.elf
|
||||
./build/tests/c/instruction_checks/r5900_trunc_cvt.elf
|
||||
./build/tests/c/instruction_checks/r5900_vcallms.elf
|
||||
./build/tests/c/instruction_checks/r5900_disasm.elf
|
||||
|
Loading…
x
Reference in New Issue
Block a user