Fixed-Point Instructions

Fixed-Point Instructions


Move Instructions


InstructionFunctional UnitDescription
MV

.L1 or .L2
.S1 or .S2
.D1 or .D2

 Move value from one register to another
MVC.S2 onlyMove value between control register and registerfile
MVK.S1 or .S2Move 16-bit const into lower 16-bits of a register and sign extended
MVKLH.S1 or .S2Move 16-bit const into upper 16-bits of a register
MVKH.S1 or .S2Move upper 16-bit const  value of 32-bit into upper 16-bits of a register

Example:-

 1) MV .S1 A1, A0 ; Move the contents of Register A1 to A0

Load & Store Instructions


Instruction  Functional Unit Description
 LDB or STB .D1 or .D2 Load byte from memory to register in register file or  Store byte from memory to register in register file
 LDBU .D1 or .D2  Load byte unsigned from memory to register in register file
 LDH or STH .D1 or .D2 Load half word from memory to register in register file or  Store half word from memory to register in register file
 LDHU .D1 or .D2 Load half word unsigned from memory to register in register file
 LDW or STW .D1 or .D2  Load word from memory to register in register file or  Store word from memory to register in register file

ADD Instruction


Instruction  Functional Unit Description
ADD .L1 or .L2
.S1 or .S2
.D1 or .D2
 Signed Integer Addition without Saturation
 ADDU .L1 or .L2 Un-Signed Integer Addition without Saturation
SADD .L1 or .L2 Integer Addition with Saturation to result-size

Substract Instruction


Instruction  Functional Unit Description
SUB .L1 or .L2
.S1 or .S2
.D1 or .D2
 Signed Integer Substraction without Saturation
 SUBU .L1 or .L2 , .S1 or .S2 Un-Signed Integer Substraction without Saturation
SUBC .L1 or .L2 Conditional Integer Substract and shift used for division
 SSUB  .L1 or .L2 Integer Addition with Saturation to result-size

Multiply Instructions


Instruction  Functional Unit Description
MPY or MPYU.M1 or .M2 Signed or Unsigned Integer multiplication on 16 LSB's
MPYH or MPYHU .M1 or .M2Signed or Unsigned Integer multiplication on 16 MSB's
MPYLH or MPYLHU.M1 or .M2Signed or Unsigned Integer multiplication on 16 LSB's & 16 MSB's
 MPYHL or MPYHLU .M1 or .M2 Signed or Unsigned Integer multiplication on  16 MSB's & 16 LSB's

Logical, Shift, Compare Instructions


Instruction  Functional Unit Description
NOT.L1 or .L2
.S1 or .S2
Bit-wise NOT Pseudo Operation
 AND.L1 or .L2
.S1 or .S2
 Bit-wise AND Pseudo Operation
OR.L1 or .L2
.S1 or .S2
Bit-wise OR Pseudo Operation
 NEG .L1 or .L2
.S1 or .S2
 Negate Pseudo Operation
 SHL .S1 or .S2 Arithmetic Shift Left
 SHR .S1 or .S2 Arithmetic Shift Right
 SHRU .S1 or .S2 Logical Shift Right
 SSHL .S1 or .S2 Shift left with Saturation

Branch & other Instructions


Instruction  Functional Unit Description
B.S1 or .S2Branch using Displacement or register
B IRP or B NRP.S2Branch using an Interrupt Return Pointer or using NMI return Pointer
CLR.S1 or .S2Clear a bit field
 SET .L1 or .L2Set a bit field
EXT .S1 or .S2Extract and Sign-Extend a bit field
 EXTU .S1 or .S2Extract and Zero-Extend a bit field
LMBD .L1 or .L2Leftmost bit detection
 SAT .L1 or .L2 Saturate a 40-bit integer to a 32-bit integer

References


  • WikiNote Foundation

Last modified: Friday, 20 September 2019, 3:30 PM