Atmel Xplained Pro Evaluation Kit ATSAM4E-XPRO ATSAM4E-XPRO Data Sheet

Product codes
ATSAM4E-XPRO
Page of 1506
159
SAM4E [DATASHEET]
Atmel-11157D-ATARM-SAM4E16-SAM4E8-Datasheet_12-Jun-14
12.6.7.4  QASX and QSAX
Saturating Add and Subtract with Exchange and Saturating Subtract and Add with Exchange, signed.
Syntax
op{cond} {Rd}, RmRn
where:
op
is one of:
QASX Add and Subtract with Exchange and Saturate.
QSAX Subtract and Add with Exchange and Saturate.
cond
is an optional condition code, see 
.
Rd
is the destination register.
Rn, Rm
are registers holding the first and second operands.
Operation
The QASX instruction:
1.
Adds the top halfword of the source operand with the bottom halfword of the second operand.
2.
Subtracts the top halfword of the second operand from the bottom highword of the first operand.
3.
Saturates the result of the subtraction and writes a 16-bit signed integer in the range –2
15
 
≤ x ≤ 2
15
 – 1, 
where x equals 16, to the bottom halfword of the destination register.
4.
Saturates the results of the sum and writes a 16-bit signed integer in the range 
–2
15
 
≤ x ≤ 2
15
 – 1, where x equals 16, to the top halfword of the destination register.
The QSAX instruction:
1.
Subtracts the bottom halfword of the second operand from the top highword of the first operand.
2.
Adds the bottom halfword of the source operand with the top halfword of the second operand.
3.
Saturates the results of the sum and writes a 16-bit signed integer in the range 
–2
15
 
≤ x ≤ 2
15
 – 1, where 
x
 equals 16, to the bottom halfword of the destination register.
4.
Saturates the result of the subtraction and writes a 16-bit signed integer in the range –2
15
 
≤ x ≤ 2
15
 – 1, 
where 
x
 equals 16, to the top halfword of the destination register.
Restrictions
Do not use SP and do not use PC
.
Condition Flags
These instructions do not affect the condition code flags.
Examples
QASX
R7, R4, R2 ; Adds top halfword of R4 to bottom halfword of R2,
 ; saturates to 16 bits, writes to top halfword of R7
; Subtracts top highword of R2 from bottom halfword of
; R4, saturates to 16 bits and writes to bottom halfword
; of R7
QSAX
 R0, R3, R5 ; Subtracts bottom halfword of R5 from top halfword of
 ; R3, saturates to 16 bits, writes to top halfword of R0
 ; Adds bottom halfword of R3 to top halfword of R5,
 ; saturates to 16 bits, writes to bottom halfword of R0.