ARM Instruction Reference

4.4.3SMULxy

Signed multiply (16-bit by 16-bit, 32-bit result).

Syntax

SMUL<x><y>{cond} Rd, Rm, Rs

where: <x>

 

is either B or T. B means use the bottom end (bits [15:0]) of Rm, T means

 

use the top end (bits [31:16]) of Rm.

<y>

 

 

is either B or T. B means use the bottom end (bits [15:0]) of Rs, T means

 

use the top end (bits [31:16]) of Rs.

cond

is an optional condition code (see Conditional execution on page 4-4).

Rd

is the ARM register for the result.

Rm, Rs

are the ARM registers holding the values to be multiplied.

r15 cannot be used for any of Rd, Rm, or Rs.

Any combination of Rd, Rm, and Rs can use the same registers.

Usage

The SMULxy instruction multiplies the 16-bit signed integers from the selected halves of Rm and Rs, and places the 32-bit result in Rd.

Condition flags

This instruction does not affect any flags.

Architectures

This instruction is available in all E variants of ARM architecture v5 and above.

Example

SMULTBEQ r8,r7,r9

4-44

Copyright © 2000, 2001 ARM Limited. All rights reserved.

ARM DUI 0068B

Page 154
Image 154
ARM VERSION 1.2 manual SMULxy, Use the top end bits 3116 of Rm, Use the top end bits 3116 of Rs