-
Adding new registers that are not defined by the ISA (i.e. temporary registers for data dependencies among micro-ops of a macro-op)
- Adding temporary register definitions to
src/arch/riscv/regs/int.hh.
- Adding temporary register definitions to
-
Adding new operands (i.e. adding new vector operands, e.g. vd, vs1, vs2),
src/arch/riscv/operands.isa: add the new operand indef operands.- The types of registers, such as
IntRegOporFloatRegOp, are defined insrc/arch/isa_parser/isa_parser.py. For example,IntRegOpwill be mapped toIntRegOperandDesc, which is defined insrc/arch/isa_parser/operand_types.py. We need the constructor signature to create the new operands.
- The types of registers, such as
-
Adding vector registers as defined by the ISA,
src/arch/riscv/vecregs.hh: add an include toarch/riscv/regs/vec.hh.- For content of
src/arch/riscv/regs/vec.hh, look at other ISAsvec.hh. - Add the
VTYPEregister tosrc/arch/riscv/regs/misc.hh. - Add CSR registers to
src/arch/riscv/regs/misc.hh. - Add misc reg names to
src/arch/riscv/isa.cc.
-
Adding bitfields to
src/arch/riscv/isa/bitfields.isa. -
Adding
src/arch/riscv/isa/formats/vector.isa: where instruction constructors at. -
Adding
src/arch/riscv/insts/vector.ccandsrc/arch/riscv/insts/vector.hh: I don't know what they are for yet. -
Updating
src/arch/riscv/isa/decoder.isato decode vector insts. -
src/arch/riscv/insts/SConscript: addvector.cc. -
src/arch/riscv/isa/formats/formats.isa: addvector.isa. -
Should be fixed stuff,
- Fixing VType in decoder
- In
src/arch/isa_parser/isa_parser.py, the functionp_top_level_decode_blockmodified decodeInst() signature to add vtype and vl. - Similar things in
src/arch/riscv/decoder.ccandsrc/arch/riscv/decoder.hh. - In
src/arch/generic/pcstate.hh, this containsvlandvtype. - In
src/cpu/simple/base.cc,vlandvtypeare manually read from MiscReg of the execution thread.
- In
- Fixing VType in decoder