diff --git a/xtheadmac/mula.adoc b/xtheadmac/mula.adoc index 653becf..146f545 100644 --- a/xtheadmac/mula.adoc +++ b/xtheadmac/mula.adoc @@ -28,7 +28,7 @@ Operation:: [source,sail] -- M := reg[rs1] * reg[rs2] -reg[rd] := zext.d(reg[rd] + M) +reg[rd] := reg[rd] + M -- Permission:: diff --git a/xtheadmac/mulah.adoc b/xtheadmac/mulah.adoc index 8712087..4bccacc 100644 --- a/xtheadmac/mulah.adoc +++ b/xtheadmac/mulah.adoc @@ -27,8 +27,8 @@ This instruction computes the multiply-add result of the provided half-word oper Operation:: [source,sail] -- -M := zext.h(reg[rs1]) * zext.h(reg[rs2]) -reg[rd] := sext.w(zext.w(reg[rd] + M)) +M := sext.w(reg[rs1][15:0]) * sext.w(reg[rs2][15:0]) +reg[rd] := sext.w(reg[rd] + M) -- Permission:: diff --git a/xtheadmac/mulaw.adoc b/xtheadmac/mulaw.adoc index 80aed01..57c4e67 100644 --- a/xtheadmac/mulaw.adoc +++ b/xtheadmac/mulaw.adoc @@ -27,8 +27,8 @@ This instruction computes the multiply-add result of the provided word operands. Operation:: [source,sail] -- -M := zext.w(reg[rs1]) * zext.w(reg[rs2]) -reg[rd] := sext.w(zext.w(reg[rd] + M)) +M := sext.w(reg[rs1]) * sext.w(reg[rs2]) +reg[rd] := sext.w(reg[rd] + M) -- Permission:: diff --git a/xtheadmac/muls.adoc b/xtheadmac/muls.adoc index 28df4b5..a46b82f 100644 --- a/xtheadmac/muls.adoc +++ b/xtheadmac/muls.adoc @@ -28,7 +28,7 @@ Operation:: [source,sail] -- M := reg[rs1] * reg[rs2] -reg[rd] := zext.d(reg[rd] - M) +reg[rd] := reg[rd] - M -- Permission:: diff --git a/xtheadmac/mulsh.adoc b/xtheadmac/mulsh.adoc index 13d5ccc..a3ad9cf 100644 --- a/xtheadmac/mulsh.adoc +++ b/xtheadmac/mulsh.adoc @@ -27,8 +27,8 @@ This instruction computes the multiply-subtract result of the provided half-word Operation:: [source,sail] -- -M := zext.h(reg[rs1]) * zext.h(reg[rs2]) -reg[rd] := sext.w(zext.w(reg[rd] - M)) +M := sext.h(reg[rs1][15:0]) * sext.h(reg[rs2][15:0]) +reg[rd] := sext.w(reg[rd] - M) -- Permission:: diff --git a/xtheadmac/mulsw.adoc b/xtheadmac/mulsw.adoc index 32f1fab..3186fdd 100644 --- a/xtheadmac/mulsw.adoc +++ b/xtheadmac/mulsw.adoc @@ -27,8 +27,8 @@ This instruction computes the multiply-subtract result of the provided word oper Operation:: [source,sail] -- -M := zext.w(reg[rs1]) * zext.w(reg[rs2]) -reg[rd] := sext.w(zext.w(reg[rd] - M)) +M := sext.w(reg[rs1]) * sext.w(reg[rs2]) +reg[rd] := sext.w(reg[rd] - M) -- Permission:: diff --git a/xtheadmemidx/lurwu.adoc b/xtheadmemidx/lurwu.adoc index 765410c..29a8b76 100644 --- a/xtheadmemidx/lurwu.adoc +++ b/xtheadmemidx/lurwu.adoc @@ -22,7 +22,7 @@ Encoding:: .... Description:: -This instruction loads a zero extended 16-bit value into GP register _rd_ from the address _rs1_ + (zero_extend(_rs2_) << _imm2_). +This instruction loads a zero extended 32-bit value into GP register _rd_ from the address _rs1_ + (zero_extend(_rs2_) << _imm2_). Note, that this instruction is equivalent to a `zext.w _rs2_, _rs2_` followed by a `th.lrwu` with the same arguments.