RV32M, RV64M Instructions

mul

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

000

rd

01100

11

Format
mul rd,rs1,rs2
Description
performs an XLEN-bit \(\times\) XLEN-bit multiplication of signed rs1 by signed rs2 and places the lower XLEN bits in the destination register.
Implementation
x[rd] = x[rs1] × x[rs2]

mulh

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

001

rd

01100

11

Format
mulh rd,rs1,rs2
Description
performs an XLEN-bit \(\times\) XLEN-bit multiplication of signed rs1 by signed rs2 and places the upper XLEN bits in the destination register.
Implementation
x[rd] = (x[rs1] s×s x[rs2]) >>s XLEN

mulhsu

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

010

rd

01100

11

Format
mulhsu rd,rs1,rs2
Description
performs an XLEN-bit \(\times\) XLEN-bit multiplication of signed rs1 by unsigned rs2 and places the upper XLEN bits in the destination register.
Implementation
x[rd] = (x[rs1] s \(\times\) x[rs2]) >>s XLEN

mulhu

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

011

rd

01100

11

Format
mulhu rd,rs1,rs2
Description
performs an XLEN-bit \(\times\) XLEN-bit multiplication of unsigned rs1 by unsigned rs2 and places the upper XLEN bits in the destination register.
Implementation
x[rd] = (x[rs1] u \(\times\) x[rs2]) >>u XLEN

div

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

100

rd

01100

11

Format
div rd,rs1,rs2
Description
perform an XLEN bits by XLEN bits signed integer division of rs1 by rs2, rounding towards zero.
Implementation
x[rd] = x[rs1] /s x[rs2]

divu

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

101

rd

01100

11

Format
divu rd,rs1,rs2
Description
perform an XLEN bits by XLEN bits unsigned integer division of rs1 by rs2, rounding towards zero.
Implementation
x[rd] = x[rs1] /u x[rs2]

rem

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

110

rd

01100

11

Format
rem rd,rs1,rs2
Description
perform an XLEN bits by XLEN bits signed integer reminder of rs1 by rs2.
Implementation
x[rd] = x[rs1] %s x[rs2]

remu

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

111

rd

01100

11

Format
remu rd,rs1,rs2
Description
perform an XLEN bits by XLEN bits unsigned integer reminder of rs1 by rs2.
Implementation
x[rd] = x[rs1] %u x[rs2]