M Extension

Implemented Version

2.0.0

Versions

Version 2.0.0

State

ratified

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 example_rv64_with_overlay configuration:

div

Signed division

divu

Unsigned division

rem

Signed remainder

remu

Unsigned remainder