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*/)