diff options
Diffstat (limited to 'libc/spec')
| -rw-r--r-- | libc/spec/gnu_ext.td | 6 | ||||
| -rw-r--r-- | libc/spec/llvm_libc_ext.td | 8 | ||||
| -rw-r--r-- | libc/spec/posix.td | 29 | ||||
| -rw-r--r-- | libc/spec/stdc.td | 17 |
4 files changed, 54 insertions, 6 deletions
diff --git a/libc/spec/gnu_ext.td b/libc/spec/gnu_ext.td index 46f1abf042dd..b2a2b8af104d 100644 --- a/libc/spec/gnu_ext.td +++ b/libc/spec/gnu_ext.td @@ -36,17 +36,17 @@ def GnuExtensions : StandardSpec<"GNUExtensions"> { FunctionSpec< "lgamma_r", RetValSpec<DoubleType>, - [ArgSpec<DoubleType, IntPtr>] + [ArgSpec<DoubleType>, ArgSpec<IntPtr>] >, FunctionSpec< "lgammaf_r", RetValSpec<FloatType>, - [ArgSpec<FloatType, IntPtr>] + [ArgSpec<FloatType>, ArgSpec<IntPtr>] >, FunctionSpec< "lgammal_r", RetValSpec<LongDoubleType>, - [ArgSpec<LongDoubleType, IntPtr>] + [ArgSpec<LongDoubleType>, ArgSpec<IntPtr>] >, ] >; diff --git a/libc/spec/llvm_libc_ext.td b/libc/spec/llvm_libc_ext.td index f86a8c1c6c10..c4cbca80072b 100644 --- a/libc/spec/llvm_libc_ext.td +++ b/libc/spec/llvm_libc_ext.td @@ -71,6 +71,10 @@ def LLVMLibcExt : StandardSpec<"llvm_libc_ext"> { GuardedFunctionSpec<"f16sub", RetValSpec<Float16Type>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>], "LIBC_TYPES_HAS_FLOAT16">, GuardedFunctionSpec<"f16subf", RetValSpec<Float16Type>, [ArgSpec<FloatType>, ArgSpec<FloatType>], "LIBC_TYPES_HAS_FLOAT16">, GuardedFunctionSpec<"f16subl", RetValSpec<Float16Type>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>], "LIBC_TYPES_HAS_FLOAT16">, + + GuardedFunctionSpec<"fdivf128", RetValSpec<FloatType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, + + GuardedFunctionSpec<"ffmaf128", RetValSpec<FloatType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, GuardedFunctionSpec<"fmulf128", RetValSpec<FloatType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, @@ -94,8 +98,10 @@ def LLVMLibcExt : StandardSpec<"llvm_libc_ext"> { GuardedFunctionSpec<"fsqrtf128", RetValSpec<FloatType>, [ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, + FunctionSpec<"fsubf128", RetValSpec<FloatType>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, + FunctionSpec<"powi", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<IntType>]>, - FunctionSpec<"powif", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntType>]>, + FunctionSpec<"powif", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntType>]>, ] >; diff --git a/libc/spec/posix.td b/libc/spec/posix.td index 0edf9080c712..085f2ec34ab3 100644 --- a/libc/spec/posix.td +++ b/libc/spec/posix.td @@ -132,6 +132,9 @@ def POSIX : StandardSpec<"POSIX"> { PtrType PThreadRWLockTPtr = PtrType<PThreadRWLockTType>; RestrictedPtrType RestrictedPThreadRWLockTPtr = RestrictedPtrType<PThreadRWLockTType>; + NamedType PThreadSpinLockTType = NamedType<"pthread_spinlock_t">; + PtrType PThreadSpinLockTPtr = PtrType<PThreadSpinLockTType>; + PtrType PThreadTPtr = PtrType<PThreadTType>; RestrictedPtrType RestrictedPThreadTPtr = RestrictedPtrType<PThreadTType>; @@ -1049,6 +1052,7 @@ def POSIX : StandardSpec<"POSIX"> { PThreadOnceT, PThreadRWLockAttrTType, PThreadRWLockTType, + PThreadSpinLockTType, PThreadStartT, PThreadTSSDtorT, PThreadTType, @@ -1360,6 +1364,31 @@ def POSIX : StandardSpec<"POSIX"> { RetValSpec<IntType>, [ArgSpec<PThreadRWLockTPtr>] >, + FunctionSpec< + "pthread_spin_init", + RetValSpec<IntType>, + [ArgSpec<PThreadSpinLockTPtr>, ArgSpec<IntType>] + >, + FunctionSpec< + "pthread_spin_destroy", + RetValSpec<IntType>, + [ArgSpec<PThreadSpinLockTPtr>] + >, + FunctionSpec< + "pthread_spin_lock", + RetValSpec<IntType>, + [ArgSpec<PThreadSpinLockTPtr>] + >, + FunctionSpec< + "pthread_spin_trylock", + RetValSpec<IntType>, + [ArgSpec<PThreadSpinLockTPtr>] + >, + FunctionSpec< + "pthread_spin_unlock", + RetValSpec<IntType>, + [ArgSpec<PThreadSpinLockTPtr>] + > ] >; diff --git a/libc/spec/stdc.td b/libc/spec/stdc.td index 506b1c6e74fa..5dde6ac67f5a 100644 --- a/libc/spec/stdc.td +++ b/libc/spec/stdc.td @@ -414,6 +414,12 @@ def StdC : StandardSpec<"stdc"> { FunctionSpec<"fdiml", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>, GuardedFunctionSpec<"fdimf16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>, ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">, GuardedFunctionSpec<"fdimf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, + + FunctionSpec<"fdiv", RetValSpec<FloatType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>, + FunctionSpec<"fdivl", RetValSpec<FloatType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>, + + FunctionSpec<"ffma", RetValSpec<FloatType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>, ArgSpec<DoubleType>]>, + FunctionSpec<"ffmal", RetValSpec<FloatType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>, FunctionSpec<"floor", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>, FunctionSpec<"floorf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, @@ -510,6 +516,9 @@ def StdC : StandardSpec<"stdc"> { GuardedFunctionSpec<"fromfpxf16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>, ArgSpec<IntType>, ArgSpec<UnsignedIntType>], "LIBC_TYPES_HAS_FLOAT16">, GuardedFunctionSpec<"fromfpxf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>, ArgSpec<IntType>, ArgSpec<UnsignedIntType>], "LIBC_TYPES_HAS_FLOAT128">, + FunctionSpec<"fsub", RetValSpec<FloatType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>, + FunctionSpec<"fsubl", RetValSpec<FloatType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>, + FunctionSpec<"ufromfp", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<IntType>, ArgSpec<UnsignedIntType>]>, FunctionSpec<"ufromfpf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<IntType>, ArgSpec<UnsignedIntType>]>, FunctionSpec<"ufromfpl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<IntType>, ArgSpec<UnsignedIntType>]>, @@ -582,6 +591,7 @@ def StdC : StandardSpec<"stdc"> { FunctionSpec<"exp2", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>, FunctionSpec<"exp2f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, + GuardedFunctionSpec<"exp2f16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">, FunctionSpec<"exp2m1f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, @@ -590,11 +600,13 @@ def StdC : StandardSpec<"stdc"> { FunctionSpec<"exp10", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>, FunctionSpec<"exp10f", RetValSpec<FloatType>, [ArgSpec<FloatType>]>, + GuardedFunctionSpec<"exp10f16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">, FunctionSpec<"remainder", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>, FunctionSpec<"remainderf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>, FunctionSpec<"remainderl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>, ArgSpec<LongDoubleType>]>, GuardedFunctionSpec<"remainderf16", RetValSpec<Float16Type>, [ArgSpec<Float16Type>, ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">, + GuardedFunctionSpec<"remainderf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>, ArgSpec<Float128Type>], "LIBC_TYPES_HAS_FLOAT128">, FunctionSpec<"remquo", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>, ArgSpec<IntPtr>]>, FunctionSpec<"remquof", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>, ArgSpec<IntPtr>]>, @@ -739,10 +751,11 @@ def StdC : StandardSpec<"stdc"> { GuardedFunctionSpec<"totalordermagf128", RetValSpec<IntType>, [ArgSpec<Float128Ptr>, ArgSpec<Float128Ptr>], "LIBC_TYPES_HAS_FLOAT128">, FunctionSpec<"getpayload", RetValSpec<DoubleType>, [ArgSpec<DoublePtr>]>, - FunctionSpec<"getpayloadf", RetValSpec<FloatType>, [ArgSpec<FloatPtr>]>, + FunctionSpec<"getpayloadf", RetValSpec<FloatType>, [ArgSpec<FloatPtr>]>, + FunctionSpec<"getpayloadl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoublePtr>]>, GuardedFunctionSpec<"getpayloadf16", RetValSpec<Float16Type>, [ArgSpec<Float16Ptr>], "LIBC_TYPES_HAS_FLOAT16">, GuardedFunctionSpec<"getpayloadf128", RetValSpec<Float128Type>, [ArgSpec<Float128Ptr>], "LIBC_TYPES_HAS_FLOAT128">, - + FunctionSpec<"setpayload", RetValSpec<IntType>, [ArgSpec<DoublePtr>, ArgSpec<DoubleType>]>, FunctionSpec<"setpayloadf", RetValSpec<IntType>, [ArgSpec<FloatPtr>, ArgSpec<FloatType>]>, GuardedFunctionSpec<"setpayloadf16", RetValSpec<IntType>, [ArgSpec<Float16Ptr>, ArgSpec<Float16Type>], "LIBC_TYPES_HAS_FLOAT16">, |
