wip! disas: empty insn printers

This commit is contained in:
fridtjof 2025-09-02 22:26:07 +02:00
parent 6291ca5273
commit a52b787a70

View file

@ -139,10 +139,120 @@ output(mnemonic, format, ##__VA_ARGS__); \
return true; \
}
/*static const char width[] = {
'x', 'B', 'W', 'x', 'D'
};*/
/*
static const char* width[] = {
"x", "B", "W", "x", "D"
};
//INSN(MOV_imm, "MOV" width[a->width], "$0x%x, r%d", width[a->width], a->imm, a->rd)
//INSN(MOV_reg, "MOV" width[a->width], "r%d, r%d", width[a->width], a->rs, a->rd)
//INSN(MOVD_reg, "MOVD", "r%d, r%d", a->rs, a->rd)
INSN(UNIMPLEMENTED, "")
INSN(LOAD, "")
INSN(LOAD_rrp, "")
INSN(LOAD_abs, "")
INSN(LOAD_ind_abs, "")
//INSN(LOADD, "")
INSN(STOR, "")
INSN(STOR_rrp, "")
INSN(STOR_rrp_imm, "")
INSN(STOR_abs, "")
INSN(STOR_ind_abs, "")
INSN(STOR_abs_imm, "")
INSN(STOR_abs_rrp_imm, "")
//INSN(STORD, "")
INSN(STOR_imm, "$0x%x, r%d", a->imm, a->ra)
INSN(LOADM, "$0x%x", a->cnt)
//INSN(LOADMP, "$0x%x", a->cnt)
INSN(STORM, "$0x%x", a->cnt)
//INSN(STORMP, "$0x%x", a->cnt)
INSN(MOV_reg, "%s r%d, r%d", width[a->width], a->rs, a->rd)
INSN(MOV_imm, "%s $0x%x, r%d", width[a->width], a->imm, a->rd)
INSN(MOVD_reg, "r%dr%d, r%dr%d", a->rs + 1, a->rs, a->rd + 1, a->rd)
INSN(MOVXB, "r%d, r%d", a->rs, a->rd)
INSN(MOVZB, "r%d, r%d", a->rs, a->rd)
INSN(MOVXW, "r%d, r%d", a->rs, a->rd)
INSN(MOVZW, "r%d, r%d", a->rs, a->rd)
INSN(ADD_imm, "$0x%x, r%d", a->imm, a->rd)
INSN(ADD_reg, "r%d, r%d", a->rs, a->rd)
INSN(ADDU_imm, "$0x%x, r%d", a->imm, a->rd)
INSN(ADDU_reg, "r%d, r%d", a->rs, a->rd)
//INSN(ADDC_imm, "")
//INSN(ADDC_reg, "r%d, r%d", a->rs, a->rd)
INSN(ADDD_imm, "$0x%x, r%dr%d", a->imm, a->rd + 1, a->rd)
INSN(ADDD_rp, "r%dr%d, r%dr%d", a->rs + 1, a->rs, a->rd + 1, a->rd)
INSN(MACQW, "")
INSN(MACSW, "")
INSN(MACUW, "")
INSN(MUL_imm, "")
INSN(MULB_reg, "r%d, r%d", a->rs, a->rd)
INSN(MULW_reg, "r%d, r%d", a->rs, a->rd)
INSN(MULSB_reg, "r%d, r%d", a->rs, a->rd)
INSN(MULSW_reg, "r%d, r%d", a->rs, a->rd)
INSN(MULUW_reg, "r%d, r%d", a->rs, a->rd)
INSN(SUB_imm, "")
INSN(SUB_reg, "r%d, r%d", a->rs, a->rd)
INSN(SUBD_imm, "")
INSN(SUBD_rp, "")
//INSN(SUBC_imm, "")
//INSN(SUBC_reg, "")
INSN(CMP_imm, "")
INSN(CMP_reg, "")
//INSN(CMPD_imm, "")
INSN(CMPD_reg, "")
INSN(BR0, "") // BEQ0, BNE0
INSN(AND_imm, "")
INSN(AND_reg, "")
INSN(ANDD_imm, "")
INSN(ANDD_rp, "")
INSN(OR_imm, "")
INSN(OR_reg, "")
INSN(ORD_imm, "")
INSN(ORD_rp, "")
INSN(XOR_imm, "")
INSN(XOR_reg, "")
INSN(XORD_imm, "")
INSN(XORD_rp, "")
INSN(SCOND, "")
INSN(ASHU_imm_l, "")
INSN(ASHU_imm_r, "")
INSN(ASHU_reg, "")
INSN(ASHUD_imm_l, "")
INSN(ASHUD_imm_r, "")
INSN(ASHUD_rp, "")
INSN(LSH_imm_r, "")
INSN(LSH_reg, "")
INSN(LSHD_imm_r, "")
INSN(LSHD_rp, "")
// TODO
//INSN(TBIT, "")
INSN(SBIT_abs, "")
INSN(CBIT_abs, "")
// TODO
INSN(LPR, "")
INSN(LPRD, "")
INSN(SPR, "")
INSN(SPRD, "")
INSN(BRCOND, "")
INSN(BAL_ra, "")
// INSN(BR, "") // BRCOND condition "ALWAYS"
INSN(EXCP, "")
INSN(JCOND, "")
//INSN(JAL, "")
//INSN(JUMP, "") // JCOND condition "ALWAYS"
//INSN(JUSR, "")
//INSN(RETX, "")
INSN(push, "")
INSN(pop, "")
//INSN(CINV, "")
//INSN(NOP, "")
//INSN(WAIT, "")
*/