04.01.2015 Views

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Compiler-specific Features<br />

4.7.63 __shsax intrinsic<br />

This intrinsic inserts a SHSAX instruction into the instruction stream generated by the<br />

compiler. It enables you to exchange the two halfwords of one operand, perform one<br />

signed 16-bit integer subtraction and one signed 16-bit addition, and halve the results.<br />

unsigned int __shsax(unsigned int val1, unsigned int val2)<br />

Where:<br />

val1<br />

val2<br />

holds the first halfword operands<br />

holds the second halfword operands.<br />

The __shsax intrinsic returns:<br />

• the halved addition of the low halfword in the first operand and the high halfword<br />

in the second operand, in the low halfword of the return value<br />

• the halved subtraction of the low halfword in the second operand from the high<br />

halfword in the first operand, in the high halfword of the return value.<br />

Example:<br />

unsigned int exchange_subract_add_halve(unsigned int val1, unsigned int val2)<br />

{<br />

unsigned int res;<br />

}<br />

res = __shsax(val1,val2); /* res[15:0] = (val1[15:0] + val2[31:16])

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!