块体指令¶
当前版本,系统块块体中提供的指令列表如下:
公共指令¶
系统块内支持所有的公共指令,具体请见公共指令列表。
特有指令¶
系统块内独有的32bit指令如下:
| 分类 | 指令列表 |
|---|---|
| 执行控制 | BSE, BWE, BWI, BWT, ASSERT, ACRC, ACRE, DSB |
| 屏障作用 | DSB, ISB |
| 缓存管理 | BC.IVA, BC.IALL, IC.IVA, IC.IALL, DC.IVA, DC.IALL, DC.CVA, DC.CIVA, DC.ISW, DC.CSW, DC.CISW, DC.ZVA |
| 页表维护 | TLB.IA, TLB.IV, TLB.IAV, TLB.IALL |
| 加载保留与条件存储 | LR.B, LR.H, LR.W, LR.D, SC.B, SC.H, SC.W, SC.D |
| 原子操作·加载字 | LW.ADD, LW.AND, LW.OR, LW.XOR, LW.SMAX, LW.SMIN, LW.UMAX, LW.UMIN |
| 原子操作·加载双字 | LD.ADD, LD.AND, LD.OR, LD.XOR, LD.SMAX, LD.SMIN, LD.UMAX, LD.UMIN |
| 原子操作·存储字 | SW.ADD, SW.AND, SW.OR, SW.XOR, SW.SMAX, SW.SMIN, SW.UMAX, SW.UMIN |
| 原子操作·存储双字 | SD.ADD, SD.AND, SD.OR, SD.XOR, SD.SMAX, SD.SMIN, SD.UMAX, SD.UMIN |
| 原子交换 | SWAPB, SWAPH, SWAPW, SWAPD |
系统块内独有的48bit指令如下:
| 分类 | 指令列表 |
|---|---|
| 通用队列管理 | HL.QMT, HL.QPUSH, HL.QPOP |
| 原子操作 | HL.CASB, HL.CASH, HL.CASW, HL.CASD |
系统块内独有的64bit指令如下:
| 分类 | 指令列表 |
|---|---|
| 原子双元素比较交换 | L.CASBP, L.CASHP, L.CASWP, L.CASDP |
指令特性¶
系统块内块体指令的特性包括:
- 系统块内块体指令是完备的,包括所有的基础指令。
- 系统块指令内块体指令可以被中断和产生异常。
- 系统块指令内块体指令设置系统寄存器时立即生效,无影子系统寄存器。访问系统寄存器效果和访存相同。允许在一个块指令内先设置再读取。
- 系统块指令内中断控制,系统调用,异常返回等修改BPC的指令,需要在系统块指令整体提交后生效。
备注¶
系统块内暂时不支持超长指令。