diff options
Diffstat (limited to 'arch/mips/include/asm/uasm.h')
-rw-r--r-- | arch/mips/include/asm/uasm.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/mips/include/asm/uasm.h b/arch/mips/include/asm/uasm.h index c33a9564fb41..f8d63b3b40b4 100644 --- a/arch/mips/include/asm/uasm.h +++ b/arch/mips/include/asm/uasm.h | |||
@@ -55,6 +55,9 @@ void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | |||
55 | #define Ip_u2u1u3(op) \ | 55 | #define Ip_u2u1u3(op) \ |
56 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | 56 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) |
57 | 57 | ||
58 | #define Ip_u3u2u1(op) \ | ||
59 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | ||
60 | |||
58 | #define Ip_u3u1u2(op) \ | 61 | #define Ip_u3u1u2(op) \ |
59 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | 62 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c) |
60 | 63 | ||
@@ -74,6 +77,9 @@ void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, unsigned int c, \ | |||
74 | #define Ip_u1u2(op) \ | 77 | #define Ip_u1u2(op) \ |
75 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b) | 78 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b) |
76 | 79 | ||
80 | #define Ip_u2u1(op) \ | ||
81 | void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b) | ||
82 | |||
77 | #define Ip_u1s2(op) \ | 83 | #define Ip_u1s2(op) \ |
78 | void ISAOPC(op)(u32 **buf, unsigned int a, signed int b) | 84 | void ISAOPC(op)(u32 **buf, unsigned int a, signed int b) |
79 | 85 | ||
@@ -99,6 +105,7 @@ Ip_u2u1s3(_daddiu); | |||
99 | Ip_u3u1u2(_daddu); | 105 | Ip_u3u1u2(_daddu); |
100 | Ip_u2u1msbu3(_dins); | 106 | Ip_u2u1msbu3(_dins); |
101 | Ip_u2u1msbu3(_dinsm); | 107 | Ip_u2u1msbu3(_dinsm); |
108 | Ip_u1u2(_divu); | ||
102 | Ip_u1u2u3(_dmfc0); | 109 | Ip_u1u2u3(_dmfc0); |
103 | Ip_u1u2u3(_dmtc0); | 110 | Ip_u1u2u3(_dmtc0); |
104 | Ip_u2u1u3(_drotr); | 111 | Ip_u2u1u3(_drotr); |
@@ -114,16 +121,22 @@ Ip_u2u1msbu3(_ext); | |||
114 | Ip_u2u1msbu3(_ins); | 121 | Ip_u2u1msbu3(_ins); |
115 | Ip_u1(_j); | 122 | Ip_u1(_j); |
116 | Ip_u1(_jal); | 123 | Ip_u1(_jal); |
124 | Ip_u2u1(_jalr); | ||
117 | Ip_u1(_jr); | 125 | Ip_u1(_jr); |
126 | Ip_u2s3u1(_lb); | ||
118 | Ip_u2s3u1(_ld); | 127 | Ip_u2s3u1(_ld); |
119 | Ip_u3u1u2(_ldx); | 128 | Ip_u3u1u2(_ldx); |
129 | Ip_u2s3u1(_lh); | ||
120 | Ip_u2s3u1(_ll); | 130 | Ip_u2s3u1(_ll); |
121 | Ip_u2s3u1(_lld); | 131 | Ip_u2s3u1(_lld); |
122 | Ip_u1s2(_lui); | 132 | Ip_u1s2(_lui); |
123 | Ip_u2s3u1(_lw); | 133 | Ip_u2s3u1(_lw); |
124 | Ip_u3u1u2(_lwx); | 134 | Ip_u3u1u2(_lwx); |
125 | Ip_u1u2u3(_mfc0); | 135 | Ip_u1u2u3(_mfc0); |
136 | Ip_u1(_mfhi); | ||
137 | Ip_u1(_mflo); | ||
126 | Ip_u1u2u3(_mtc0); | 138 | Ip_u1u2u3(_mtc0); |
139 | Ip_u3u1u2(_mul); | ||
127 | Ip_u3u1u2(_or); | 140 | Ip_u3u1u2(_or); |
128 | Ip_u2u1u3(_ori); | 141 | Ip_u2u1u3(_ori); |
129 | Ip_u2s3u1(_pref); | 142 | Ip_u2s3u1(_pref); |
@@ -133,17 +146,25 @@ Ip_u2s3u1(_sc); | |||
133 | Ip_u2s3u1(_scd); | 146 | Ip_u2s3u1(_scd); |
134 | Ip_u2s3u1(_sd); | 147 | Ip_u2s3u1(_sd); |
135 | Ip_u2u1u3(_sll); | 148 | Ip_u2u1u3(_sll); |
149 | Ip_u3u2u1(_sllv); | ||
150 | Ip_u2u1s3(_sltiu); | ||
151 | Ip_u3u1u2(_sltu); | ||
136 | Ip_u2u1u3(_sra); | 152 | Ip_u2u1u3(_sra); |
137 | Ip_u2u1u3(_srl); | 153 | Ip_u2u1u3(_srl); |
154 | Ip_u3u2u1(_srlv); | ||
138 | Ip_u3u1u2(_subu); | 155 | Ip_u3u1u2(_subu); |
139 | Ip_u2s3u1(_sw); | 156 | Ip_u2s3u1(_sw); |
157 | Ip_u1(_sync); | ||
140 | Ip_u1(_syscall); | 158 | Ip_u1(_syscall); |
141 | Ip_0(_tlbp); | 159 | Ip_0(_tlbp); |
142 | Ip_0(_tlbr); | 160 | Ip_0(_tlbr); |
143 | Ip_0(_tlbwi); | 161 | Ip_0(_tlbwi); |
144 | Ip_0(_tlbwr); | 162 | Ip_0(_tlbwr); |
163 | Ip_u1(_wait); | ||
164 | Ip_u2u1(_wsbh); | ||
145 | Ip_u3u1u2(_xor); | 165 | Ip_u3u1u2(_xor); |
146 | Ip_u2u1u3(_xori); | 166 | Ip_u2u1u3(_xori); |
167 | Ip_u2u1(_yield); | ||
147 | 168 | ||
148 | 169 | ||
149 | /* Handle labels. */ | 170 | /* Handle labels. */ |
@@ -264,6 +285,8 @@ void uasm_il_bbit0(u32 **p, struct uasm_reloc **r, unsigned int reg, | |||
264 | unsigned int bit, int lid); | 285 | unsigned int bit, int lid); |
265 | void uasm_il_bbit1(u32 **p, struct uasm_reloc **r, unsigned int reg, | 286 | void uasm_il_bbit1(u32 **p, struct uasm_reloc **r, unsigned int reg, |
266 | unsigned int bit, int lid); | 287 | unsigned int bit, int lid); |
288 | void uasm_il_beq(u32 **p, struct uasm_reloc **r, unsigned int r1, | ||
289 | unsigned int r2, int lid); | ||
267 | void uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 290 | void uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
268 | void uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 291 | void uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
269 | void uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 292 | void uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |