English
Language : 

W90210F Datasheet, PDF (64/67 Pages) Winbond – PA-RISC EMBEDDED CONTROLLER
W90210F
Halfword Multiply
Format:
0:5
05
6
HMPY, cmplt r1,r2,t
6:10
11:15
21:25 26 27:31
r2 r1 c g - 12 1 t
5 5 212 5 1 5
HMPY
Purpose: To multiply corresponding halfwords of two registers.
Description:The corresponding 16-bit halfwords of GR r1 and GR r2 are interpreted as signed or unsigned
16-bit integers and are arithmetically multiplied together. The 32-bit result is placed in GR t.
The cmplt completer is specified by the g and the c bits in the instruction.
Operation:
switch(cmplt) {
case uhh (g=0, c=00, unsigned multiplication) {
GR[t]{0..31} ← zero_ext(GR[r1]{0..15}) × zero_ext(GR[r2]{0..15})
break;
}
case shh (g=1, c=00, signed multiplication) {
GR[t]{0..31} ← sign_ext(GR[r1]{0..15}) × sign_ext(GR[r2]{0..15})
break;
}
case uhl (g=0, c=01, unsigned multiplication) {
GR[t]{0..31} ← zero_ext(GR[r1]{0..15}) × zero_ext(GR[r2]{16:31})
break;
}
case shl (g=1, c=01, signed multiplication) {
GR[t]{0..31} ← sign_ext(GR[r1]{0..15}) × sign_ext(GR[r2]{16:31}
break;
}
case ulh (g=0, c=10, unsigned multiplication) {
GR[t]{0..31} ← zero_ext(GR[r1]{16:31}) × zero_ext(GR[r2]{0..15})
break;
}
case slh (g=1, c=10, signed multiplication) {
GR[t]{0..31} ← sign_ext(GR[r1]{16:31}) × sign_ext(GR[r2]{0..15})
break;
}
case ull (g=0, c=11, unsigned multiplication) {
GR[t]{0..31} ← zero_ext(GR[r1]{16:31}) × zero_ext(GR[r2]{16:31})
break;
}
case sll (g=1, c=11, signed multiplication) {
GR[t]{0..31} ← sign_ext(GR[r1]{16:31}) × sign_ext(GR[r2]{16:31})
break;
}
}
Exception:
Restriction:
None
Winbond defined instruction for W90210F.
64
The above information is the exclusive intellectual property of Winbond Electronics Corp. and shall not be disclosed, distributed or reproduced without permission from Winbond.
Version 1.4, 10/8/97