| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Wrench.Isa.RiscIv
Description
Documentation
Constructors
| Addi | Add immediate: rd = rs1 + k |
| Add | Add: rd = rs1 + rs2 |
| Sub | Subtract: rd = rs1 - rs2 |
| Mul | Multiply: rd = rs1 * rs2 |
| Mulh | Multiply high: rd = (rs1 * rs2) >> (word size) |
| Div | Divide: rd = rs1 / rs2 |
| Rem | Remainder: rd = rs1 % rs2 |
| Sll | Logical shift left: rd = rs1 << rs2 (5 bit) |
| Srl | Logical shift right: rd = rs1 >> rs2 (5 bit) |
| Sra | Arithmetic shift right: rd = rs1 >> rs2 (5 bit) |
| And | Bitwise AND: rd = rs1 & rs2 |
| Or | Bitwise OR: rd = rs1 | rs2 |
| Xor | Bitwise XOR: rd = rs1 ^ rs2 |
| Slti | Set less than immediate: rd = (rs1 < k) ? 1 : 0 |
| Slli | Logical shift left immediate: rd = rs1 << k (5 bit) |
| Srli | Logical shift right immediate: rd = rs1 >>> k (5 bit) |
| Srai | Arithmetic shift right immediate: rd = rs1 >> k (5 bit) |
| Andi | Bitwise AND immediate: rd = rs1 & k |
| Ori | Bitwise OR immediate: rd = rs1 | k |
| Xori | Bitwise XOR immediate: rd = rs1 ^ k |
| Mv | Move: rd = rs |
| Sw | Store word: M[offsetRs1] = rs2 |
| Sb | Store byte: M[offsetRs1] = rs2 (lower 8 bits) |
| Lui | Load upper immediate: rd = k << 12 |
| Lw | Load word: rd = M[offsetRs1] |
| Lb | Load byte (sign-extended): rd = signext(M[offsetRs1][7:0]) |
| J | Jump: PC = PC + k |
Fields
| |
| Jal | Jump and Link: rd = PC + 4, PC += k |
| Jalr | Jump and link register: rd = PC + 4, PC = rs1 + k |
| Beqz | Branch if equal to zero: if rs1 == 0 then PC += k |
| Bnez | Branch if not equal to zero: if rs1 /= 0 then PC += k |
| Blt | Branch if less than: if rs1 < rs2 then PC += k |
| Bge | Branch if greater than or equal: if rs1 >= rs2 then PC += k |
| Bltu | Branch if less than (unsigned): if rs1 < rs2 then PC += k |
| Bgeu | Branch if greater than or equal (unsigned): if rs1 >= rs2 then PC += k |
| Beq | Branch if equal: if rs1 == rs2 then PC += k |
| Bne | Branch if not equal: if rs1 /= rs2 then PC += k |
| Halt | Halt the machine |
Instances
| IsWord w => DerefMnemonic (RiscIvIsa w) w Source # | |
Defined in Wrench.Isa.RiscIv | |
| IsWord w => Machine (RiscIvSt w) (RiscIvIsa w w) w Source # | |
| (Show w, Show l) => Show (RiscIvIsa w l) Source # | |
| ByteSize (RiscIvIsa w l) Source # | |
| CommentStart (RiscIvIsa _a _b) Source # | |
Defined in Wrench.Isa.RiscIv Methods | |
| IsWord w => MnemonicParser (RiscIvIsa w (Ref w)) Source # | |
Constructors
| RiscIvSt | |
Instances
| Show w => Show (RiscIvSt w) Source # | |||||||||
| IsWord w => InitState (RiscIvSt w) Source # | |||||||||
| IsWord w => Inspectable (RiscIvSt w) Source # | |||||||||
Defined in Wrench.Isa.RiscIv Associated Types
| |||||||||
| IsWord w => Machine (RiscIvSt w) (RiscIvIsa w w) w Source # | |||||||||
| type IsaOf (RiscIvSt w) Source # | |||||||||
Defined in Wrench.Isa.RiscIv | |||||||||
| type MemOf (RiscIvSt w) Source # | |||||||||
Defined in Wrench.Isa.RiscIv | |||||||||
| type WordOf (RiscIvSt w) Source # | |||||||||
Defined in Wrench.Isa.RiscIv | |||||||||
Constructors
| Zero | |
| Ra | |
| Sp | |
| Gp | |
| Tp | |
| T0 | |
| T1 | |
| T2 | |
| S0Fp | |
| S1 | |
| A0 | |
| A1 | |
| A2 | |
| A3 | |
| A4 | |
| A5 | |
| A6 | |
| A7 | |
| S2 | |
| S3 | |
| S4 | |
| S5 | |
| S6 | |
| S7 | |
| S8 | |
| S9 | |
| S10 | |
| S11 | |
| T3 | |
| T4 | |
| T5 | |
| T6 |