Nios® II Processor Reference Guide

ID 683836
Date 8/28/2023
Public
Document Table of Contents

8.5.66. mulxss

Instruction multiply extended signed/signed
Operation

rC ←  ((signed) rA) x ((signed) rB)) 63..32

Assembler Syntax

mulxss rC, rA, rB

Example

mulxss r6, r7, r8

Description

Treating rA and rB as signed integers, mulxss multiplies rA times rB, and stores the 32 high-order bits of the product to rC.

Nios® II processors that do not implement the mulxss instruction cause an unimplemented instruction exception.

Usage

Use mulxss and mul to compute the full 64-bit product of two 32-bit signed integers. Furthermore, mulxss can be used as part of the calculation of a 128-bit product of two 64-bit signed integers. Given two 64-bit integers, each contained in a pair of 32-bit registers, (S1 : U1) and (S2 : U2), their 128-bit product is (U1 x U2) + ((S1 x U2) << 32) + ((U1 x S2) << 32) + ((S1 x S2) << 64). The mulxss and mul instructions are used to calculate the 64-bit product S1 x S2.

Exceptions

Unimplemented instruction

Instruction Type

R

Instruction Fields

A = Register index of operand rA

B = Register index of operand rB

C = Register index of operand rC

Bit Fields
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
A B C 0x1f
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0x1f 0 0x3a