@@ -30,6 +30,7 @@ This chapter gives a brief overview of all available ISA extensions.
3030| <<_zbs_isa_extension,`Zbs`>> | Single-bit bit manipulation instructions | <<_processor_top_entity_generics, `RISCV_ISA_Zbs`>>
3131| <<_zfinx_isa_extension,`Zfinx`>> | Floating-point instructions using integer registers | <<_processor_top_entity_generics, `RISCV_ISA_Zfinx`>>
3232| <<_zifencei_isa_extension,`Zifencei`>> | Instruction stream synchronization instruction | Always enabled
33+ | <<_zibi_isa_extension,`Zibi`>> | Branches with immediate-comparison | <<_processor_top_entity_generics, `RISCV_ISA_Zibi`>>
3334| <<_zicntr_isa_extension,`Zicntr`>> | Base counters extension | <<_processor_top_entity_generics, `RISCV_ISA_Zicntr`>>
3435| <<_zicond_isa_extension,`Zicond`>> | Integer conditional operations | <<_processor_top_entity_generics, `RISCV_ISA_Zicond`>>
3536| <<_zicsr_isa_extension,`Zicsr`>> | Control and status register access instructions | Always enabled
@@ -134,7 +135,7 @@ The "compressed" ISA extension provides 16-bit encodings of commonly used instru
134135| ALU | `c.addi4spn` `c.nop` `c.add[i]` `c.li` `c.addi16sp` `c.lui` `c.and[i]` `c.sub` `c.xor` `c.or` `c.mv` | 2
135136| ALU shifts | `c.srli` `c.srai` `c.slli` | 2 + `T_shift_latency`
136137| Branch | `c.beqz` `c.bnez` | not taken: 3 +
137- taken 5 + `T_inst_latency`
138+ taken: 5 + `T_inst_latency`
138139| Jump/call | `c.jal[r]` `c.j` `c.jr` | 5 + `T_inst_latency`
139140| Load/store | `c.lw` `c.sw` `c.lwsp` `c.swsp` | 4 + `T_data_latency`
140141| System | `c.break` | 7 + `T_inst_latency`
@@ -163,7 +164,7 @@ The `I` ISA extensions is the base RISC-V integer ISA that is always enabled.
163164| ALU | `add[i]` `slt[i]` `slt[i]u` `xor[i]` `or[i]` `and[i]` `sub` `lui` `auipc` | 2
164165| ALU shifts | `sll[i]` `srl[i]` `sra[i]` | 3 + `T_shift_latency`
165166| Branch | `beq` `bne` `blt` `bge` `bltu` `bgeu` | not taken: 3 +
166- taken 5 + `T_inst_latency`
167+ taken: 5 + `T_inst_latency`
167168| Jump/call | `jal[r]` | 5 + `T_inst_latency`
168169| Load/store | `lb` `lh` `lw` `lbu` `lhu` `sb` `sh` `sw` | 4 + `T_data_latency`
169170| Data fence | `fence` | 2
@@ -336,6 +337,26 @@ If a computational instruction generates a subnormal result it is also flushed t
336337|=======================
337338
338339
340+ ==== `Zibi` ISA Extension
341+
342+ The RISC-V `Zibi` ISA extension adds two new "branch with immediate" instruction. The instruction's
343+ `rs2` address bits are used to select one out of 32 pre-defined immediate values which is used for
344+ the actual comparison.
345+
346+ .Non-Ratified ISA Extension
347+ [WARNING]
348+ The RISC-V `Zibi` ISA extension has not been ratified yet!
349+
350+ .Instructions and Timing
351+ [cols="<3,<2,<5"]
352+ [options="header", grid="rows"]
353+ |=======================
354+ | Class | Instructions | Execution cycles
355+ | Branch with immediate | `beqi` `bnei` | not taken: 3 +
356+ taken: 5 + `T_inst_latency`
357+ |=======================
358+
359+
339360==== `Zicntr` ISA Extension
340361
341362The `Zicntr` ISA extension adds the basic <<_cycleh>>, <<_mcycleh>>, <<_instreth>> and <<_minstreth>>
0 commit comments