Does bset access memory?
No. It reads integer register operands and writes rd only.
Set single bit by register index
BSET uses opcode 0110011 (0x33), funct3 001, funct7 0010100. The rs1 and rs2 fields select the two source registers, and rd selects the destination register.
bset is a Zbs single-bit set instruction. The bit index comes from the low log2(XLEN) bits of rs2.
bset is a Zbs single-bit set instruction. The bit index comes from the low log2(XLEN) bits of rs2.
Understand this scenario with real code like «bset x10, x11, x12 ; x10 = x11 | (1 << (x12 & (XLEN-1)))».
Understand this scenario with real code like «bset x10, x11, x12 ; x10 = x11 | (1 << (x12 & (XLEN-1)))».
No. It reads integer register operands and writes rd only.
The low log2(XLEN) bits of rs2 select the bit, so higher bits do not extend the index range.