hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/arch/mips/include/uapi/asm/inst.h
....@@ -55,9 +55,9 @@
5555 spec3_unused_op, spec4_unused_op, slt_op, sltu_op,
5656 dadd_op, daddu_op, dsub_op, dsubu_op,
5757 tge_op, tgeu_op, tlt_op, tltu_op,
58
- teq_op, spec5_unused_op, tne_op, spec6_unused_op,
59
- dsll_op, spec7_unused_op, dsrl_op, dsra_op,
60
- dsll32_op, spec8_unused_op, dsrl32_op, dsra32_op
58
+ teq_op, seleqz_op, tne_op, selnez_op,
59
+ dsll_op, spec5_unused_op, dsrl_op, dsra_op,
60
+ dsll32_op, spec6_unused_op, dsrl32_op, dsra32_op
6161 };
6262
6363 /*
....@@ -371,6 +371,7 @@
371371 mm_srl32_op = 0x040,
372372 mm_srlv32_op = 0x050,
373373 mm_sra_op = 0x080,
374
+ mm_srav_op = 0x090,
374375 mm_rotr_op = 0x0c0,
375376 mm_lwxs_op = 0x118,
376377 mm_addu32_op = 0x150,
....@@ -988,6 +989,40 @@
988989 };
989990
990991 /*
992
+ * Loongson-3 overridden COP2 instruction formats (32-bit length)
993
+ */
994
+struct loongson3_lswc2_format { /* Loongson-3 overridden lwc2/swc2 Load/Store format */
995
+ __BITFIELD_FIELD(unsigned int opcode : 6,
996
+ __BITFIELD_FIELD(unsigned int base : 5,
997
+ __BITFIELD_FIELD(unsigned int rt : 5,
998
+ __BITFIELD_FIELD(unsigned int fr : 1,
999
+ __BITFIELD_FIELD(unsigned int offset : 9,
1000
+ __BITFIELD_FIELD(unsigned int ls : 1,
1001
+ __BITFIELD_FIELD(unsigned int rq : 5,
1002
+ ;)))))))
1003
+};
1004
+
1005
+struct loongson3_lsdc2_format { /* Loongson-3 overridden ldc2/sdc2 Load/Store format */
1006
+ __BITFIELD_FIELD(unsigned int opcode : 6,
1007
+ __BITFIELD_FIELD(unsigned int base : 5,
1008
+ __BITFIELD_FIELD(unsigned int rt : 5,
1009
+ __BITFIELD_FIELD(unsigned int index : 5,
1010
+ __BITFIELD_FIELD(unsigned int offset : 8,
1011
+ __BITFIELD_FIELD(unsigned int opcode1 : 3,
1012
+ ;))))))
1013
+};
1014
+
1015
+struct loongson3_lscsr_format { /* Loongson-3 CPUCFG&CSR read/write format */
1016
+ __BITFIELD_FIELD(unsigned int opcode : 6,
1017
+ __BITFIELD_FIELD(unsigned int rs : 5,
1018
+ __BITFIELD_FIELD(unsigned int fr : 5,
1019
+ __BITFIELD_FIELD(unsigned int rd : 5,
1020
+ __BITFIELD_FIELD(unsigned int fd : 5,
1021
+ __BITFIELD_FIELD(unsigned int func : 6,
1022
+ ;))))))
1023
+};
1024
+
1025
+/*
9911026 * MIPS16e instruction formats (16-bit length)
9921027 */
9931028 struct m16e_rr {
....@@ -1087,6 +1122,9 @@
10871122 struct mm16_rb_format mm16_rb_format;
10881123 struct mm16_r3_format mm16_r3_format;
10891124 struct mm16_r5_format mm16_r5_format;
1125
+ struct loongson3_lswc2_format loongson3_lswc2_format;
1126
+ struct loongson3_lsdc2_format loongson3_lsdc2_format;
1127
+ struct loongson3_lscsr_format loongson3_lscsr_format;
10901128 };
10911129
10921130 union mips16e_instruction {