M Extension

Implemented Version

2.0.0

Versions

2.0.0
Ratification date

2019-12

Synopsis

This chapter describes the standard integer multiplication and division instruction extension, which is named M and contains instructions that multiply or divide values held in two integer registers.

We separate integer multiply and divide out from the base to simplify low-end implementations, or for applications where integer multiply and divide operations are either infrequent or better handled in attached accelerators.

Instructions

The following instructions are added by this extension in the generic_rv64 configuration:

div

Signed division

divu

Unsigned division

divuw

Unsigned 32-bit division

divw

Signed 32-bit division

rem

Signed remainder

remu

Unsigned remainder

remuw

Unsigned 32-bit remainder

remw

Signed 32-bit remainder

Parameters

This extension has the following implementation options:

MUTABLE_MISA_M

Indicates whether or not the M extension can be disabled with the misa.M bit.