MUL16S — Multiply 16-bit Signed

Instruction Word

Slot
Inst
6
3
6
2
6
1
6
0
5
9
5
8
5
7
5
6
5
5
5
4
5
3
5
2
5
1
5
0
4
9
4
8
4
7
4
6
4
5
4
4
4
3
4
2
4
1
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
3
2
3
1
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
9876543210
Format x24 - 24 bit(s) 0
MUL16S 11010001 0000
r 3210
s 3210
t 3210

Assembler Syntax

MUL16S ar, as, at

C Syntax

#include <xtensa/tie/xt_mul.h>

extern int XT_MUL16S(short s, short t);

Description

(please consult the Xtensa ® Instruction Set Architecture Reference Manual for any cross references and additional information)

MUL16S performs a two's complement multiplication of the least-significant 16 bits of the contents of address registers as and at and writes the 32-bit product to address register ar.

Operation

AR[r] ← (AR[s]1516||AR[s]15..0) \* (AR[t]1516||AR[t]15..0)

Exceptions

EveryInstR Group (see EveryInstR Group:)

Protos that use MUL16S

proto MUL16S { out int32 r, in int16 s, in int16 t }{}{
MUL16S r, s, t;
}