Does ORN access memory?
No. It only reads and writes integer registers; any memory access must be performed by a separate load or store instruction.
OR with inverted operand: rd = rs1 | ~rs2
ORN uses opcode 0110011 (0x33), funct3 110, funct7 0100000. The rs1 and rs2 fields select the two source registers, and rd selects the destination register.
Bitwise OR of rs1 with the bitwise inversion of rs2: rd = rs1 | ~rs2. Part of Zbb and Zbkb.
ORN is a B/Zbb instruction for bitwise rs1 OR not rs2. This page is checked against the official B extension semantics, with emphasis on XLEN, W suffixes, .uw suffixes, and bitwise or rotate boundaries.
Understand this scenario with real code like «orn x10, x11, x12 ; x10 = x11 | ~x12».
Understand this scenario with real code like «orn x10, x11, x12 ; x10 = x11 | ~x12».
No. It only reads and writes integer registers; any memory access must be performed by a separate load or store instruction.
Except that W-suffixed forms produce a 32-bit result then sign-extend and .uw forms first extract a 32-bit unsigned operand, the result is written to rd at XLEN width.