Atmel ARM-Based Evaluation Kit for SAM4S16C, 32-Bit ARM® Cortex® Microcontroller ATSAM4S-WPIR-RD ATSAM4S-WPIR-RD Data Sheet

Product codes
ATSAM4S-WPIR-RD
Page of 1231
SAM4S Series [DATASHEET]
Atmel-11100G-ATARM-SAM4S-Datasheet_27-May-14
128
12.6.5.10SHADD16 and SHADD8
Signed Halving Add 16 and Signed Halving Add 8
Syntax
op{cond}{Rd,} RnRm
where:
opis any of:
SHADD16 Signed Halving Add 16.
SHADD8 Signed Halving Add 8.
condis an optional condition code, see 
.
Rdis the destination register.
Rnis the first operand register.
Rmis the second operand register.
Operation
Use these instructions to add 16-bit and 8-bit data and then to halve the result before writing the result to the 
destination register:
The SHADD16 instruction: 
1. Adds each halfword from the first operand to the corresponding halfword of the second operand.
2. Shuffles the result by one bit to the right, halving the data.
3. Writes the halfword results in the destination register.
The SHADDB8 instruction: 
1. Adds each byte of the first operand to the corresponding byte of the second operand.
2. Shuffles the result by one bit to the right, halving the data.
3. Writes the byte results in the destination register.
Restrictions
Do not use SP and do not use PC
.
Condition Flags
These instructions do not change the flags.
Examples
SHADD16 R1, R0     ; Adds halfwords in R0 to corresponding halfword of R1 
 ; and writes halved result to corresponding halfword in 
 ; R1
SHADD8
R4, R0, R5 ; Adds bytes of R0 to corresponding byte in R5 and
 ; writes halved result to corresponding byte in R4.