aboutsummaryrefslogtreecommitdiff
path: root/src/zc/cm_lbu.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/zc/cm_lbu.adoc')
-rw-r--r--src/zc/cm_lbu.adoc50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/zc/cm_lbu.adoc b/src/zc/cm_lbu.adoc
new file mode 100644
index 0000000..7e9735f
--- /dev/null
+++ b/src/zc/cm_lbu.adoc
@@ -0,0 +1,50 @@
+<<<
+[#insns-cm_lbu,reftext="Load unsigned byte, 16-bit encoding"]
+=== cm.lbu
+
+Synopsis::
+Load unsigned byte, 16-bit encoding
+
+Mnemonic::
+cm.lbu _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[0|3]' },
+ { bits: 1, name: 0x0 },
+ { bits: 3, name: 0x1, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_lbu>>.
+
+include::cm_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction loads a byte from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting byte is zero extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lbu>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTZ(mem[X(rs1c)+EXTZ(uimm)][7..0]);
+--
+
+include::Zcmb_footer.adoc[]