diff options
Diffstat (limited to 'pysc-v/InstructionSets/RV64I.py')
-rw-r--r-- | pysc-v/InstructionSets/RV64I.py | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/pysc-v/InstructionSets/RV64I.py b/pysc-v/InstructionSets/RV64I.py deleted file mode 100644 index 72b8bcb..0000000 --- a/pysc-v/InstructionSets/RV64I.py +++ /dev/null @@ -1,63 +0,0 @@ -from .instructions import Instruction, InstructionSet -from ctypes import c_uint32 -from .RV32I import * - -RV64I = InstructionSet() - -class ShiftImm64(ShiftImm): - # NOTE: This is an special type used for shifting operations because they - # have 7 bits left after the maximum shift (5bits -> 32 rotations) - # they can apply. - # In RV64I they can indicate rotation with 1 bit more (64 rotations) so - # they use a funct6 instead. - funct6 = None - funct3 = None - opcode = None - - def __init__(self, rd, rs, imm): - self.rd = rd - self.rs = rs - self.imm = imm - - def compile(self): - return c_uint32( - (self.funct6 << 26) +\ - (self.imm << 20) +\ - (self.rs << 15) +\ - (self.funct3 << 12) +\ - (self.rd << 7) +\ - self.opcode - ) - -@RV64I.instruction -class slli(ShiftImm64): - name = "slli" - opcode = 0b0010011 - funct3 = 0b001 - funct6 = 0b000000 - -@RV64I.instruction -class srli(ShiftImm64): - name = "srli" - opcode = 0b0010011 - funct3 = 0b101 - funct6 = 0b000000 - -@RV64I.instruction -class srai(ShiftImm64): - name = "srai" - opcode = 0b0010011 - funct3 = 0b101 - funct6 = 0b010000 - -@RV64I.instruction -class sd(S): - name = "sd" - opcode = 0b0100011 - funct3 = 0b011 - -@RV64I.instruction -class ld(I): - name = "ld" - opcode = 0b0000011 - funct3 = 0b011 |