RV64M Instructions

mulw

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

000

rd

01110

11

Format
mulw rd,rs1,rs2
Description

Implementation
x[rd] = sext((x[rs1] × x[rs2])[31:0])

divw

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

100

rd

01110

11

Format
divw rd,rs1,rs2
Description
perform an 32 bits by 32 bits signed integer division of rs1 by rs2.
Implementation
x[rd] = sext(x[rs1][31:0] /s x[rs2][31:0]

divuw

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

101

rd

01110

11

Format
divuw rd,rs1,rs2
Description
perform an 32 bits by 32 bits unsigned integer division of rs1 by rs2.
Implementation
x[rd] = sext(x[rs1][31:0] /u x[rs2][31:0])

remw

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

110

rd

01110

11

Format
remw rd,rs1,rs2
Description
perform an 32 bits by 32 bits signed integer reminder of rs1 by rs2.
Implementation
x[rd] = sext(x[rs1][31:0] %s x[rs2][31:0])

remuw

31-27

26-25

24-20

19-15

14-12

11-7

6-2

1-0

00000

01

rs2

rs1

111

rd

01110

11

Format
remuw rd,rs1,rs2
Description
perform an 32 bits by 32 bits unsigned integer reminder of rs1 by rs2.
Implementation
x[rd] = sext(x[rs1][31:0] %u x[rs2][31:0])