| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- // This is an X-macro header. It does not use `#include` guards, and instead is
- // designed to be `#include`ed after the x-macro is defined in order for its
- // inclusion to expand to the desired output. Macro definitions are cleaned up
- // at the end of this file.
- //
- // Supported x-macros are:
- // - CARBON_BUILTIN(Name)
- // Defines a builtin.
- #ifndef CARBON_BUILTIN
- #error "Must define the x-macro to use this file."
- #endif
- // Conversions.
- CARBON_BUILTIN(As)
- CARBON_BUILTIN(ImplicitAs)
- // Comparison.
- CARBON_BUILTIN(EqWith)
- CARBON_BUILTIN(LessWith)
- CARBON_BUILTIN(LessEqWith)
- CARBON_BUILTIN(GreaterWith)
- CARBON_BUILTIN(GreaterEqWith)
- CARBON_BUILTIN(CompareWith)
- // Arithmetic.
- CARBON_BUILTIN(Negate)
- CARBON_BUILTIN(AddWith)
- CARBON_BUILTIN(SubWith)
- CARBON_BUILTIN(MulWith)
- CARBON_BUILTIN(DivWith)
- CARBON_BUILTIN(ModWith)
- // Bitwise and shift.
- CARBON_BUILTIN(BitComplement)
- CARBON_BUILTIN(BitAndWith)
- CARBON_BUILTIN(BitOrWith)
- CARBON_BUILTIN(BitXorWith)
- CARBON_BUILTIN(LeftShiftWith)
- CARBON_BUILTIN(RightShiftWith)
- // Simple assignment.
- CARBON_BUILTIN(AssignWith)
- // Compound assignment.
- CARBON_BUILTIN(AddAssignWith)
- CARBON_BUILTIN(SubAssignWith)
- CARBON_BUILTIN(MulAssignWith)
- CARBON_BUILTIN(DivAssignWith)
- CARBON_BUILTIN(ModAssignWith)
- CARBON_BUILTIN(BitAndAssignWith)
- CARBON_BUILTIN(BitOrAssignWith)
- CARBON_BUILTIN(BitXorAssignWith)
- CARBON_BUILTIN(LeftShiftAssignWith)
- CARBON_BUILTIN(RightShiftAssignWith)
- // Increment and decrement.
- CARBON_BUILTIN(Inc)
- CARBON_BUILTIN(Dec)
- // Last for the number of builtins.
- CARBON_BUILTIN(Invalid)
- #undef CARBON_BUILTIN
|