61 lines
1.1 KiB
YAML
61 lines
1.1 KiB
YAML
structures:
|
|
main:
|
|
bits: 32
|
|
ranges:
|
|
31-20:
|
|
name: op2
|
|
depends-on: 5
|
|
values:
|
|
0:
|
|
description: second operand is an immediate value
|
|
structure: immediateOp
|
|
1:
|
|
description: second operand is a register
|
|
structure: registerOp
|
|
19-15:
|
|
name: rs1
|
|
14-12:
|
|
name: funct3
|
|
description: operation
|
|
values:
|
|
000: add / sub
|
|
100: xor
|
|
110: or
|
|
111: and
|
|
001: sl
|
|
101: sr
|
|
11-7:
|
|
name: rd
|
|
6:
|
|
name: 0
|
|
5:
|
|
name: I
|
|
4:
|
|
name: 1
|
|
3:
|
|
name: 0
|
|
2:
|
|
name: 0
|
|
1:
|
|
name: 1
|
|
0:
|
|
name: 1
|
|
immediateOp:
|
|
bits: 12
|
|
ranges:
|
|
11-0:
|
|
name: 12-bit immediate value
|
|
description: signed number
|
|
registerOp:
|
|
bits: 12
|
|
ranges:
|
|
11-5:
|
|
name: funct7
|
|
description: function modifier
|
|
values:
|
|
0000000: default (add, srl)
|
|
"0100000": sub, sra
|
|
4-0:
|
|
name: rs2
|
|
description: second register operand
|