03.08.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!