PC-relative Branch Range
Conditional branches use the B-type immediate, a signed PC-relative offset in 2-byte units, giving an approximate reach of +/-4 KiB from the current PC.
RISC-V Unprivileged ISA, RV32I control transfer instructionsBranch to PC-relative offset if rs1 equals rs2
BEQ uses opcode 1100011 (0x63), funct3 000. The rs1 and rs2 fields hold the comparison operands, and the 13-bit immediate encodes the branch offset (±4 KiB).
BEQ (B-type, opcode=1100011, funct3=000) compares rs1 and rs2 and takes the branch (to PC + sign-extended 12-bit B-immediate in multiples of 2) if they are equal. The conditional branch range is ±4 KiB. If the condition is false, execution falls through.
BEQ is a conditional branch: when rs1 and rs2 satisfy the equal condition, the PC branches to the current PC plus the B-type offset; otherwise execution falls through.
These notes are checked against the RISC-V Unprivileged ISA manual and summarize operation semantics, immediate ranges, and edge behavior.
Conditional branches use the B-type immediate, a signed PC-relative offset in 2-byte units, giving an approximate reach of +/-4 KiB from the current PC.
RISC-V Unprivileged ISA, RV32I control transfer instructionsConditional branches only update the PC based on the comparison result. They do not write rd or save a return address; use JAL/JALR forms for calls and returns.
RISC-V Unprivileged ISA, RV32I control transfer instructionsUnderstand this scenario with real code like «beq x1, x2, 0x100 # if x1 == x2, branch to pc+0x100».
Conditional branches use a B-type immediate, giving an approximate reach of +/-4 KiB from the current PC.
BLT/BGE compare as signed integers; BLTU/BGEU compare as unsigned integers. BEQ/BNE only test equality of the bit patterns.