Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Decorated</strong> Macro Functions<br />
enum STORE_DECORATION {<br />
};<br />
STORE_DECORATION_ACC_64 = 0,<br />
STORE_DECORATION_ACC_32 = 1,<br />
STORE_DECORATION_INC_ACC_64 = 2,<br />
STORE_DECORATION_INC_ACC_32 = 3<br />
struct stat32_pair_t {<br />
};<br />
int32_t inc;<br />
int32_t acc;<br />
struct stat64_pair_t {<br />
};<br />
int64_t inc;<br />
int64_t acc;<br />
static inline void decorated_store_32_acc_32(volatile void *a, register int32_t v){<br />
}<br />
volatile void *address = a;<br />
enum STORE_DECORATION d = STORE_DECORATION_ACC_32;<br />
__ASM("stwdx %0, %1, %2":<br />
:"r"(v), "r"(d), "r"(address)<br />
:"memory");<br />
static inline void decorated_store_32_inc_acc_32(volatile void *a, register int32_t v){<br />
}<br />
volatile void *address = (void *) ((uintptr_t) a + 4);<br />
enum STORE_DECORATION d = STORE_DECORATION_INC_ACC_32;<br />
__ASM("stwdx %0, %1, %2":<br />
:"r"(v), "r"(d), "r"(address)<br />
:"memory");<br />
static inline void decorated_store_64_acc_32(volatile void *a, register int32_t v){<br />
volatile void *address = (void *) ((uintptr_t) a + 4);<br />
<strong>Decorated</strong> <strong>Operations</strong> <strong>for</strong> <strong>QorIQ</strong> <strong>P3</strong>/<strong>P4</strong>/<strong>P5</strong> <strong>Processors</strong>, Rev. A<br />
18 <strong>Freescale</strong> Confidential Proprietary <strong>Freescale</strong> Semiconductor<br />
Preliminary—Subject to Change Without Notice