Skip to content

Commit 1b6d607

Browse files
authored
Merge pull request #2 from gtagliavini/fix_binutils
extend binutils to support SPR 2 and 3 (mac&load)
2 parents 5736005 + 180538f commit 1b6d607

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

include/opcode/riscv-opc.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,13 +1029,19 @@
10291029
#define MATCH_V_OP_DOTSP 0x90000000
10301030
#define MATCH_V_OP_DOTUP 0x98000000
10311031
#define MATCH_V_OP_DOTUSP 0xA0000000
1032-
#define MATCH_V_OP_DOTUSP_1 0xA4000000
1032+
#define MATCH_V_OP_DOTUSP_1 0xA2000000
1033+
#define MATCH_V_OP_DOTUSP_2 0xA4000000
1034+
#define MATCH_V_OP_DOTUSP_3 0xA5000000
10331035
#define MATCH_V_OP_SDOTSP 0xA8000000
1034-
#define MATCH_V_OP_SDOTSP_1 0xAC000000
1036+
#define MATCH_V_OP_SDOTSP_1 0xAA000000
1037+
#define MATCH_V_OP_SDOTSP_2 0xAC000000
1038+
#define MATCH_V_OP_SDOTSP_3 0xAE000000
10351039
#define MATCH_V_OP_SDOTUP 0xB0000000
10361040
#define MATCH_V_OP_SDOTUP_1 0xB4000000
10371041
#define MATCH_V_OP_SDOTUSP 0xB8000000
1038-
#define MATCH_V_OP_SDOTUSP_1 0xBC000000
1042+
#define MATCH_V_OP_SDOTUSP_1 0xBA000000
1043+
#define MATCH_V_OP_SDOTUSP_2 0xBC000000
1044+
#define MATCH_V_OP_SDOTUSP_3 0xBE000000
10391045
#define MATCH_V_OP_SHUFFLE 0xC0000000
10401046
#define MATCH_V_OP_SHUFFLEI1 0xE8000000
10411047
#define MATCH_V_OP_SHUFFLEI2 0xF0000000

opcodes/riscv-opc.c

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2757,31 +2757,54 @@ const struct riscv_opcode riscv_opcodes[] =
27572757

27582758
{"pv.mlsdotup.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
27592759
{"pv.mlsdotup.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2760-
{"pv.mlsdotup.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2761-
{"pv.mlsdotup.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2760+
{"pv.mlsdotup.h.2", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_2|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2761+
{"pv.mlsdotup.h.3", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_3|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2762+
{"pv.mlsdotup.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2763+
{"pv.mlsdotup.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2764+
{"pv.mlsdotup.b.2", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_2|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2765+
{"pv.mlsdotup.b.3", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_3|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
27622766
{"pv.mlsdotup.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
27632767
{"pv.mlsdotup.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2764-
{"pv.mlsdotup.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2765-
{"pv.mlsdotup.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2768+
{"pv.mlsdotup.n.2", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_2|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2769+
{"pv.mlsdotup.n.3", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_3|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2770+
{"pv.mlsdotup.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2771+
{"pv.mlsdotup.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2772+
{"pv.mlsdotup.c.2", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_2|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2773+
{"pv.mlsdotup.c.3", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_3|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
27662774

27672775
{"pv.mlsdotusp.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
27682776
{"pv.mlsdotusp.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2777+
{"pv.mlsdotusp.h.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_2|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2778+
{"pv.mlsdotusp.h.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_3|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
27692779
{"pv.mlsdotusp.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
27702780
{"pv.mlsdotusp.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2781+
{"pv.mlsdotusp.b.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_2|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2782+
{"pv.mlsdotusp.b.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_3|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
27712783
{"pv.mlsdotusp.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
27722784
{"pv.mlsdotusp.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2785+
{"pv.mlsdotusp.n.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_2|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2786+
{"pv.mlsdotusp.n.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_3|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
27732787
{"pv.mlsdotusp.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
27742788
{"pv.mlsdotusp.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2789+
{"pv.mlsdotusp.c.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_2|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2790+
{"pv.mlsdotusp.c.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_3|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
27752791

27762792
{"pv.mlsdotsp.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
27772793
{"pv.mlsdotsp.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2794+
{"pv.mlsdotsp.h.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_2|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2795+
{"pv.mlsdotsp.h.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_3|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
27782796
{"pv.mlsdotsp.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
27792797
{"pv.mlsdotsp.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2798+
{"pv.mlsdotsp.b.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_2|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2799+
{"pv.mlsdotsp.b.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_3|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
27802800
{"pv.mlsdotsp.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
27812801
{"pv.mlsdotsp.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2802+
{"pv.mlsdotsp.n.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_2|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2803+
{"pv.mlsdotsp.n.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_3|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
27822804
{"pv.mlsdotsp.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
27832805
{"pv.mlsdotsp.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2784-
2806+
{"pv.mlsdotsp.c.2", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_2|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2807+
{"pv.mlsdotsp.c.3", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_3|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
27852808

27862809
/***********************************************************************************************************************/
27872810
/************************************** Gap9 ***************************************************/

0 commit comments

Comments
 (0)