Next: Blackfin Built-in Functions, Previous: ARM NEON Intrinsics, Up: Target Builtins

#### 5.50.4 AVR32 Built-in Functions

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