================
@@ -564,4 +585,19 @@ void AVRTargetInfo::getTargetDefines(const LangOptions
&Opts,
Builder.defineMacro("__flash4", "__attribute__((__address_space__(5)))");
if (NumFlashBanks >= 6)
Builder.defineMacro("__flash5", "__attribute__((__address_space__(6)))");
+
+ // Define macros for builtins
+ Builder.defineMacro("__BUILTIN_AVR_NOP", "1");
+ Builder.defineMacro("__BUILTIN_AVR_SEI", "1");
+ Builder.defineMacro("__BUILTIN_AVR_CLI", "1");
+ Builder.defineMacro("__BUILTIN_AVR_WDR", "1");
+ Builder.defineMacro("__BUILTIN_AVR_SLEEP", "1");
+ Builder.defineMacro("__BUILTIN_AVR_SWAP", "1");
+ Builder.defineMacro("__BUILTIN_AVR_FMUL", "1");
+ Builder.defineMacro("__BUILTIN_AVR_FMULS", "1");
+ Builder.defineMacro("__BUILTIN_AVR_FMULSU", "1");
+ Builder.defineMacro("__BUILTIN_AVR_DELAY_CYCLES", "1");
----------------
beakthoven wrote:
Yes, these are unconditionally defined in avr-gcc but they silently switch to
lib calls for AVR tiny devices.
```
$ avr-gcc -mmcu=attiny13 -dM -E - < /dev/null | grep BUILTIN_AVR_FMUL
#define __BUILTIN_AVR_FMULSU 1
#define __BUILTIN_AVR_FMULS 1
#define __BUILTIN_AVR_FMUL 1
```
https://github.com/llvm/llvm-project/pull/203214
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits