|
| 1 | +# R-Type Instructions |
| 2 | +# |
| 3 | +# The lower 3 bits of funct7 [27:25] are a bitmask indicating YLEN (capability) operands: |
| 4 | +# bit 25: rd (0 = XLEN, 1 = YLEN) |
| 5 | +# bit 26: rs1 (0 = XLEN, 1 = YLEN) |
| 6 | +# bit 27: rs2 (0 = XLEN, 1 = YLEN) |
| 7 | + |
| 8 | +# Operand Types: rd YLEN, rs1 XLEN, rs2 XLEN (0b001) |
| 9 | +packy rd rs1 rs2 31..25=0b0000_001 14..12=0 6..2=0x1E 1..0=3 |
| 10 | +$pseudo_op rv_y::packy yhiw rd rs1 rs2 31..25=0b0000_001 14..12=0 6..2=0x1E 1..0=3 |
| 11 | + |
| 12 | +# Operand Types: rd YLEN, rs1 YLEN, rs2 XLEN (0b011) |
| 13 | +yadd rd rs1 rs2_n0 31..25=0b0000_011 14..12=0 6..2=0x1E 1..0=3 |
| 14 | +ymv rd rs1 31..25=0b0000_011 24..20=0 14..12=0 6..2=0x1E 1..0=3 |
| 15 | +yaddrw rd rs1 rs2 31..25=0b0001_011 14..12=0 6..2=0x1E 1..0=3 |
| 16 | +ypermc rd rs1 rs2 31..25=0b0010_011 14..12=0 6..2=0x1E 1..0=3 |
| 17 | +ybndsw rd rs1 rs2 31..25=0b0011_011 14..12=0 6..2=0x1E 1..0=3 |
| 18 | +ybndsrw rd rs1 rs2 31..25=0b0100_011 14..12=0 6..2=0x1E 1..0=3 |
| 19 | + |
| 20 | +# Operand Types: rd XLEN, rs1 YLEN, rs2 YLEN (0b110) |
| 21 | +yeq rd rs1 rs2 31..25=0b0000_110 14..12=0 6..2=0x1E 1..0=3 |
| 22 | +yss rd rs1 rs2 31..25=0b0001_110 14..12=0 6..2=0x1E 1..0=3 |
| 23 | + |
| 24 | +# Operand Types: rd YLEN, rs1 YLEN, rs2 YLEN (0b111) |
| 25 | +ysunseal rd rs1 rs2 31..25=0b0000_111 14..12=0 6..2=0x1E 1..0=3 |
| 26 | +ybld rd rs1 rs2 31..25=0b0001_111 14..12=0 6..2=0x1E 1..0=3 |
| 27 | +#rs2 is in the format, but must be zero for now (non-zero will be yseal) |
| 28 | +ysentry rd rs1 24..20=0 31..25=0b0010_111 14..12=0 6..2=0x1E 1..0=3 |
| 29 | + |
| 30 | +# 2-OP Instructions (encoded as R-type with using 1111 in the upper bits of funct7 and rs2=funct5) |
| 31 | +# Operand Types: rd XLEN, rs1 XLEN, rs2 N/A (0b000) |
| 32 | +yamask rd rs1 31..25=0b1111_000 24..20=0 14..12=0 6..2=0x1E 1..0=3 |
| 33 | +# Operand Types: rd XLEN, rs1 YLEN, rs2 N/A (0b010) |
| 34 | +ybaser rd rs1 31..25=0b1111_010 24..20=0 14..12=0 6..2=0x1E 1..0=3 |
| 35 | +ypermr rd rs1 31..25=0b1111_010 24..20=1 14..12=0 6..2=0x1E 1..0=3 |
| 36 | +ytopr rd rs1 31..25=0b1111_010 24..20=2 14..12=0 6..2=0x1E 1..0=3 |
| 37 | +ylenr rd rs1 31..25=0b1111_010 24..20=3 14..12=0 6..2=0x1E 1..0=3 |
| 38 | +ytagr rd rs1 31..25=0b1111_010 24..20=4 14..12=0 6..2=0x1E 1..0=3 |
| 39 | +ytyper rd rs1 31..25=0b1111_010 24..20=5 14..12=0 6..2=0x1E 1..0=3 |
| 40 | + |
| 41 | +# I-Type / S-Type Instructions |
| 42 | +yaddi rd rs1 imm12 14..12=4 6..2=0x1E 1..0=3 |
| 43 | +ly rd rs1 imm12 14..12=1 6..2=0x1E 1..0=3 |
| 44 | +sy imm12hi rs1 rs2 imm12lo 14..12=2 6..2=0x1E 1..0=3 |
| 45 | + |
| 46 | +# MISC Instructions |
| 47 | +ybndswi rd rs1 ybndswimm9 31..29=0b111 14..12=5 6..2=0x1E 1..0=3 |
| 48 | +srliy rd rs1 shamtq 31..27=0b00000 14..12=5 6..2=0x1E 1..0=3 |
0 commit comments