Built-in functions for atomic memory (RMW) instructions. Note that these built-ins will fail for targets where the RMW instructions are not implemented. Also note that these instructions only that a Ks15 << 2 memory address and will therefor not work with any runtime computed memory addresses. The user is responsible for making sure that any pointers used within these functions points to a valid memory address.
void __builtin_mems(int */*ptr*/, int /*bit*/) void __builtin_memc(int */*ptr*/, int /*bit*/) void __builtin_memt(int */*ptr*/, int /*bit*/)
Built-in functions for DSP instructions. Note that these built-ins will fail for targets where the DSP instructions are not implemented.
int __builtin_sats (int /*Rd*/,int /*sa*/, int /*bn*/) int __builtin_satu (int /*Rd*/,int /*sa*/, int /*bn*/) int __builtin_satrnds (int /*Rd*/,int /*sa*/, int /*bn*/) int __builtin_satrndu (int /*Rd*/,int /*sa*/, int /*bn*/) short __builtin_mulsathh_h (short, short) int __builtin_mulsathh_w (short, short) short __builtin_mulsatrndhh_h (short, short) int __builtin_mulsatrndwh_w (int, short) int __builtin_mulsatwh_w (int, short) int __builtin_macsathh_w (int, short, short) short __builtin_satadd_h (short, short) short __builtin_satsub_h (short, short) int __builtin_satadd_w (int, int) int __builtin_satsub_w (int, int) long long __builtin_mulwh_d(int, short) long long __builtin_mulnwh_d(int, short) long long __builtin_macwh_d(long long, int, short) long long __builtin_machh_d(long long, short, short)
Other built-in functions for instructions that cannot easily be generated by the compiler.
void __builtin_ssrf(int); void __builtin_csrf(int); void __builtin_musfr(int); int __builtin_mustr(void); int __builtin_mfsr(int /*Status Register Address*/) void __builtin_mtsr(int /*Status Register Address*/, int /*Value*/) int __builtin_mfdr(int /*Debug Register Address*/) void __builtin_mtdr(int /*Debug Register Address*/, int /*Value*/) void __builtin_cache(void * /*Address*/, int /*Cache Operation*/) void __builtin_sync(int /*Sync Operation*/) void __builtin_tlbr(void) void __builtin_tlbs(void) void __builtin_tlbw(void) void __builtin_breakpoint(void) int __builtin_xchg(void * /*Address*/, int /*Value*/ ) short __builtin_bswap_16(short) int __builtin_bswap_32(int) void __builtin_cop(int/*cpnr*/, int/*crd*/, int/*crx*/, int/*cry*/, int/*op*/) int __builtin_mvcr_w(int/*cpnr*/, int/*crs*/) void __builtin_mvrc_w(int/*cpnr*/, int/*crd*/, int/*value*/) long long __builtin_mvcr_d(int/*cpnr*/, int/*crs*/) void __builtin_mvrc_d(int/*cpnr*/, int/*crd*/, long long/*value*/)