fix tests

This commit is contained in:
billow 2023-04-10 03:18:12 +08:00
parent c78a086a55
commit 230ff6db56
11 changed files with 45 additions and 44 deletions

View File

@ -1096,7 +1096,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
10490241U, // LHA_abs
43343U, // LOOPU_brr
9442752U, // LOOP_brr
7345600U, // LOOP_sbr
15734208U, // LOOP_sbr
4400U, // LT_A_rr
4646U, // LT_B
6391U, // LT_BU
@ -1227,7 +1227,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
6332U, // MAX_U_rr
536877480U, // MAX_rc
6568U, // MAX_rr
15734359U, // MFCR_rlc
16782935U, // MFCR_rlc
4560U, // MIN_B
6346U, // MIN_BU
5036U, // MIN_H
@ -1236,8 +1236,8 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
6190U, // MIN_U_rr
536876419U, // MIN_rc
5507U, // MIN_rr
15732984U, // MOVH_A_rlc
15733987U, // MOVH_rlc
16781560U, // MOVH_A_rlc
16782563U, // MOVH_rlc
135518U, // MOVZ_A_sr
34607462U, // MOV_AA_rr
33558886U, // MOV_AA_srr_srr
@ -1249,9 +1249,9 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
34607731U, // MOV_D_rr
33559155U, // MOV_D_srr_srr
33559155U, // MOV_D_srr_srr_v110
15734963U, // MOV_U_rlc
16783715U, // MOV_rlc
15735139U, // MOV_rlc_e
16783539U, // MOV_U_rlc
17832291U, // MOV_rlc
16783715U, // MOV_rlc_e
34609507U, // MOV_rr
34609507U, // MOV_rr_e
6499U, // MOV_rr_eab
@ -1550,7 +1550,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
139815954U, // ST_A_bo_pos
139684388U, // ST_A_bo_pre
34020370U, // ST_A_bo_r
18029586U, // ST_A_bol
19078162U, // ST_A_bol
732442U, // ST_A_sc
344136722U, // ST_A_sro
344136722U, // ST_A_sro_v110
@ -1566,7 +1566,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
139815969U, // ST_B_bo_pos
139684405U, // ST_B_bo_pre
34020385U, // ST_B_bo_r
18029601U, // ST_B_bol
19078177U, // ST_B_bol
377691169U, // ST_B_sro
377691169U, // ST_B_sro_v110
793633U, // ST_B_ssr
@ -1593,7 +1593,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
139815983U, // ST_H_bo_pos
139684421U, // ST_H_bo_pre
34020399U, // ST_H_bo_r
18029615U, // ST_H_bol
19078191U, // ST_H_bol
377691183U, // ST_H_sro
377691183U, // ST_H_sro_v110
793647U, // ST_H_ssr
@ -1615,7 +1615,7 @@ MnemonicBitsInfo getMnemonic(MCInst *MI, SStream *O) {
139816097U, // ST_W_bo_pos
139684546U, // ST_W_bo_pre
34020513U, // ST_W_bo_r
18029729U, // ST_W_bol
19078305U, // ST_W_bol
929061U, // ST_W_sc
377691297U, // ST_W_sro
377691297U, // ST_W_sro_v110
@ -3164,7 +3164,7 @@ void printInstruction(MCInst *MI, uint64_t Address, SStream *O) {
}
// Fragment 2 encoded into 5 bits for 18 unique commands.
// Fragment 2 encoded into 5 bits for 19 unique commands.
switch ((Bits >> 20) & 31) {
default: assert(0 && "Invalid command number.");
case 0:
@ -3241,16 +3241,21 @@ void printInstruction(MCInst *MI, uint64_t Address, SStream *O) {
return;
break;
case 15:
// LOOP_sbr
printOExtImm_4(MI, 1, O);
return;
break;
case 16:
// MFCR_rlc, MOVH_A_rlc, MOVH_rlc, MOV_U_rlc, MOV_rlc_e
printZExtImm_16(MI, 1, O);
return;
break;
case 16:
case 17:
// MOV_rlc
printSExtImm_16(MI, 1, O);
return;
break;
case 17:
case 18:
// ST_A_bol, ST_B_bol, ST_H_bol, ST_W_bol
printSExtImm_16(MI, 2, O);
SStream_concat0(O, ", ");

View File

@ -16,3 +16,4 @@
TriCore_OP_GROUP_Disp15Imm = 8,
TriCore_OP_GROUP_Disp4Imm = 9,
TriCore_OP_GROUP_Off18Imm = 10,
TriCore_OP_GROUP_OExtImm__ = 11,

View File

@ -422,7 +422,6 @@ printSExtImm_(10)
printSExtImm_(9)
printSExtImm_(4)
#define printZExtImm_(n) \
@ -441,6 +440,19 @@ printZExtImm_(4)
printZExtImm_(2)
static void printOExtImm_4(MCInst *MI, int OpNum, SStream *O) {
MCOperand *MO = MCInst_getOperand(MI, OpNum);
if (MCOperand_isImm(MO)) {
uint32_t imm = MCOperand_getImm(MO);
// {27b111111111111111111111111111, disp4, 0};
imm = 0b11111111111111111111111111100000 | (imm << 1);
SS_print_sign_hex(O, imm);
fill_tricore_imm(MI, imm);
} else
printOperand(MI, OpNum, O);
}
/// Returned by getMnemonic() of the AsmPrinters.
typedef struct {

View File

@ -185,6 +185,8 @@ def u2imm : Operand<i32> { let PrintMethod = "printZExtImm<2>"; }
def u9imm : Operand<i32> { let PrintMethod = "printZExtImm<9>"; }
def u16imm : Operand<i32> { let PrintMethod = "printZExtImm<16>"; }
def oext4imm: Operand<i32> { let PrintMethod = "printOExtImm<4>"; }
def off18imm : Operand<i32> { let PrintMethod = "printOff18Imm"; }
def disp24imm : Operand<i32> { let PrintMethod = "printDisp24Imm"; }
@ -1173,7 +1175,9 @@ def LEA_bol : IBOL_RAaO<0xD9, "lea", RA>;
def LHA_abs : IABS_RO<0xC5, 0x01, "lha", RA>, Requires<[HasV162_UP]>;
def LOOP_brr : IBRR_1<0xFD, 0x00, "loop">;
def LOOP_sbr : ISBR_b<0xFC, "loop", RA>;
def LOOP_sbr : SBR<0xFC, (outs), (ins RA:$s2, oext4imm:$disp4),
"loop $s2, $disp4", []>;
def LOOPU_brr : IBRR_0<0xFD, 0x01, "loopu">, Requires<[HasV120_UP]>;
defm LT : mIRR_RC<0x0B, 0x12, 0x8B, 0x12, "lt">;

View File

@ -293,7 +293,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0x7a, 0x00 = lt %d15, %d0, %d0
0xfa, 0x00 = lt %d15, %d0, 0
@ -533,13 +533,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0x14, 0x00 = st.h [%a0+], %d0
0x4c, 0x00 = st.h [%a15]0, %d0
@ -557,7 +555,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x04, 0x00 = st.w [%a0], %d0
0x94, 0x00 = st.w [%a0+], %d0

View File

@ -291,7 +291,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -674,13 +674,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -698,7 +696,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0

View File

@ -303,7 +303,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -691,13 +691,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -715,7 +713,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0

View File

@ -312,7 +312,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -700,13 +700,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -724,7 +722,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0

View File

@ -331,7 +331,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -726,13 +726,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -751,7 +749,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0

View File

@ -337,7 +337,7 @@
0xc5, 0x00, 0x00, 0x00 = lea %a0, 0
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -732,13 +732,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -757,7 +755,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0

View File

@ -343,7 +343,7 @@
0xd9, 0x00, 0x00, 0x00 = lea %a0, [%a0]0
0x49, 0x00, 0x00, 0x0a = lea %a0, [%a0]0
0xc5, 0x00, 0x00, 0x04 = lha %a0, 0
0xfc, 0x00 = loop %a0, 0
0xfc, 0x00 = loop %a0, -0x20
0xfd, 0x00, 0x00, 0x00 = loop %a0, 0
0xfd, 0x00, 0x00, 0x80 = loopu 0
0x7a, 0x00 = lt %d15, %d0, %d0
@ -739,13 +739,11 @@
0x89, 0x00, 0x40, 0x05 = st.d [+%a0]0, %e0
0xa9, 0x00, 0x40, 0x05 = st.d [%p0+c]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0]0, %e0
0x89, 0x00, 0x40, 0x09 = st.d [%a0], %e0
0x89, 0x00, 0xc0, 0x01 = st.da [%a0+]0, %p0
0xa9, 0x00, 0xc0, 0x01 = st.da [%p0+r], %p0
0x89, 0x00, 0xc0, 0x05 = st.da [+%a0]0, %p0
0xa9, 0x00, 0xc0, 0x05 = st.da [%p0+c]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0]0, %p0
0x89, 0x00, 0xc0, 0x09 = st.da [%a0], %p0
0xa5, 0x00, 0x00, 0x0c = st.da 0, %p0
0xa4, 0x00 = st.h [%a0+], %d0
0xa8, 0x00 = st.h [%a15]0, %d0
@ -764,7 +762,6 @@
0x89, 0x00, 0x00, 0x06 = st.q [+%a0]0, %d0
0xa9, 0x00, 0x00, 0x06 = st.q [%p0+c]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0]0, %d0
0x89, 0x00, 0x00, 0x0a = st.q [%a0], %d0
0xd5, 0x00, 0x00, 0x00 = st.t 0, 0, 0
0x78, 0x00 = st.w [%sp]0, %d15
0x74, 0x00 = st.w [%a0], %d0