@@ -215,54 +215,54 @@ const int kRvcFunct6Shift = 10; |
215 | 215 | const int kRvcFunct6Bits = 6; |
216 | 216 |
|
217 | 217 | // RISCV Instruction bit masks |
218 | | -const int kBaseOpcodeMask = ((1 << kBaseOpcodeBits) - 1) << kBaseOpcodeShift; |
219 | | -const int kFunct3Mask = ((1 << kFunct3Bits) - 1) << kFunct3Shift; |
220 | | -const int kFunct5Mask = ((1 << kFunct5Bits) - 1) << kFunct5Shift; |
221 | | -const int kFunct7Mask = ((1 << kFunct7Bits) - 1) << kFunct7Shift; |
222 | | -const int kFunct2Mask = 0b11 << kFunct7Shift; |
223 | | -const int kRTypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct7Mask; |
224 | | -const int kRATypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct5Mask; |
225 | | -const int kRFPTypeMask = kBaseOpcodeMask | kFunct7Mask; |
226 | | -const int kR4TypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct2Mask; |
227 | | -const int kITypeMask = kBaseOpcodeMask | kFunct3Mask; |
228 | | -const int kSTypeMask = kBaseOpcodeMask | kFunct3Mask; |
229 | | -const int kBTypeMask = kBaseOpcodeMask | kFunct3Mask; |
230 | | -const int kUTypeMask = kBaseOpcodeMask; |
231 | | -const int kJTypeMask = kBaseOpcodeMask; |
232 | | -const int kRs1FieldMask = ((1 << kRs1Bits) - 1) << kRs1Shift; |
233 | | -const int kRs2FieldMask = ((1 << kRs2Bits) - 1) << kRs2Shift; |
234 | | -const int kRs3FieldMask = ((1 << kRs3Bits) - 1) << kRs3Shift; |
235 | | -const int kRdFieldMask = ((1 << kRdBits) - 1) << kRdShift; |
236 | | -const int kBImm12Mask = kFunct7Mask | kRdFieldMask; |
237 | | -const int kImm20Mask = ((1 << kImm20Bits) - 1) << kImm20Shift; |
238 | | -const int kImm12Mask = ((1 << kImm12Bits) - 1) << kImm12Shift; |
239 | | -const int kImm11Mask = ((1 << kImm11Bits) - 1) << kImm11Shift; |
240 | | -const int kImm31_12Mask = ((1 << 20) - 1) << 12; |
241 | | -const int kImm19_0Mask = ((1 << 20) - 1); |
242 | | -const int kRvcOpcodeMask = |
| 218 | +const uint32_t kBaseOpcodeMask = ((1 << kBaseOpcodeBits) - 1) << kBaseOpcodeShift; |
| 219 | +const uint32_t kFunct3Mask = ((1 << kFunct3Bits) - 1) << kFunct3Shift; |
| 220 | +const uint32_t kFunct5Mask = ((1 << kFunct5Bits) - 1) << kFunct5Shift; |
| 221 | +const uint32_t kFunct7Mask = ((1 << kFunct7Bits) - 1) << kFunct7Shift; |
| 222 | +const uint32_t kFunct2Mask = 0b11 << kFunct7Shift; |
| 223 | +const uint32_t kRTypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct7Mask; |
| 224 | +const uint32_t kRATypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct5Mask; |
| 225 | +const uint32_t kRFPTypeMask = kBaseOpcodeMask | kFunct7Mask; |
| 226 | +const uint32_t kR4TypeMask = kBaseOpcodeMask | kFunct3Mask | kFunct2Mask; |
| 227 | +const uint32_t kITypeMask = kBaseOpcodeMask | kFunct3Mask; |
| 228 | +const uint32_t kSTypeMask = kBaseOpcodeMask | kFunct3Mask; |
| 229 | +const uint32_t kBTypeMask = kBaseOpcodeMask | kFunct3Mask; |
| 230 | +const uint32_t kUTypeMask = kBaseOpcodeMask; |
| 231 | +const uint32_t kJTypeMask = kBaseOpcodeMask; |
| 232 | +const uint32_t kRs1FieldMask = ((1 << kRs1Bits) - 1) << kRs1Shift; |
| 233 | +const uint32_t kRs2FieldMask = ((1 << kRs2Bits) - 1) << kRs2Shift; |
| 234 | +const uint32_t kRs3FieldMask = ((1 << kRs3Bits) - 1) << kRs3Shift; |
| 235 | +const uint32_t kRdFieldMask = ((1 << kRdBits) - 1) << kRdShift; |
| 236 | +const uint32_t kBImm12Mask = kFunct7Mask | kRdFieldMask; |
| 237 | +const uint32_t kImm20Mask = ((1 << kImm20Bits) - 1) << kImm20Shift; |
| 238 | +const uint32_t kImm12Mask = ((1 << kImm12Bits) - 1) << kImm12Shift; |
| 239 | +const uint32_t kImm11Mask = ((1 << kImm11Bits) - 1) << kImm11Shift; |
| 240 | +const uint32_t kImm31_12Mask = ((1 << 20) - 1) << 12; |
| 241 | +const uint32_t kImm19_0Mask = ((1 << 20) - 1); |
| 242 | +const uint32_t kRvcOpcodeMask = |
243 | 243 | 0b11 | (((1 << kRvcFunct3Bits) - 1) << kRvcFunct3Shift); |
244 | | -const int kRvcFunct3Mask = (((1 << kRvcFunct3Bits) - 1) << kRvcFunct3Shift); |
245 | | -const int kRvcFunct4Mask = (((1 << kRvcFunct4Bits) - 1) << kRvcFunct4Shift); |
246 | | -const int kRvcFunct6Mask = (((1 << kRvcFunct6Bits) - 1) << kRvcFunct6Shift); |
247 | | -const int kRvcFunct2Mask = (((1 << kRvcFunct2Bits) - 1) << kRvcFunct2Shift); |
248 | | -const int kCRTypeMask = kRvcOpcodeMask | kRvcFunct4Mask; |
249 | | -const int kCSTypeMask = kRvcOpcodeMask | kRvcFunct6Mask; |
250 | | -const int kCATypeMask = kRvcOpcodeMask | kRvcFunct6Mask | kRvcFunct2Mask; |
| 244 | +const uint32_t kRvcFunct3Mask = (((1 << kRvcFunct3Bits) - 1) << kRvcFunct3Shift); |
| 245 | +const uint32_t kRvcFunct4Mask = (((1 << kRvcFunct4Bits) - 1) << kRvcFunct4Shift); |
| 246 | +const uint32_t kRvcFunct6Mask = (((1 << kRvcFunct6Bits) - 1) << kRvcFunct6Shift); |
| 247 | +const uint32_t kRvcFunct2Mask = (((1 << kRvcFunct2Bits) - 1) << kRvcFunct2Shift); |
| 248 | +const uint32_t kCRTypeMask = kRvcOpcodeMask | kRvcFunct4Mask; |
| 249 | +const uint32_t kCSTypeMask = kRvcOpcodeMask | kRvcFunct6Mask; |
| 250 | +const uint32_t kCATypeMask = kRvcOpcodeMask | kRvcFunct6Mask | kRvcFunct2Mask; |
251 | 251 |
|
252 | 252 | // RISCV CSR related bit mask and shift |
253 | 253 | const int kFcsrFlagsBits = 5; |
254 | | -const int kFcsrFlagsMask = (1 << kFcsrFlagsBits) - 1; |
| 254 | +const uint32_t kFcsrFlagsMask = (1 << kFcsrFlagsBits) - 1; |
255 | 255 | const int kFcsrFrmBits = 3; |
256 | 256 | const int kFcsrFrmShift = kFcsrFlagsBits; |
257 | | -const int kFcsrFrmMask = ((1 << kFcsrFrmBits) - 1) << kFcsrFrmShift; |
| 257 | +const uint32_t kFcsrFrmMask = ((1 << kFcsrFrmBits) - 1) << kFcsrFrmShift; |
258 | 258 | const int kFcsrBits = kFcsrFlagsBits + kFcsrFrmBits; |
259 | | -const int kFcsrMask = kFcsrFlagsMask | kFcsrFrmMask; |
| 259 | +const uint32_t kFcsrMask = kFcsrFlagsMask | kFcsrFrmMask; |
260 | 260 |
|
261 | 261 | // Original MIPS constants |
262 | 262 | // TODO(RISCV): to be cleaned up |
263 | 263 | const int kImm16Shift = 0; |
264 | 264 | const int kImm16Bits = 16; |
265 | | -const int kImm16Mask = ((1 << kImm16Bits) - 1) << kImm16Shift; |
| 265 | +const uint32_t kImm16Mask = ((1 << kImm16Bits) - 1) << kImm16Shift; |
266 | 266 | // end of TODO(RISCV): to be cleaned up |
267 | 267 |
|
268 | 268 | // ----- RISCV Base Opcodes |
|