| OLD | NEW |
| 1 //===- subzero/src/IceIntrinsics.cpp - Functions related to intrinsics ----===// | 1 //===- subzero/src/IceIntrinsics.cpp - Functions related to intrinsics ----===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file implements the Intrinsics utilities for matching and | 10 // This file implements the Intrinsics utilities for matching and |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 } | 39 } |
| 40 AtomicCmpxchgInit(IceType_i8, "i8"), | 40 AtomicCmpxchgInit(IceType_i8, "i8"), |
| 41 AtomicCmpxchgInit(IceType_i16, "i16"), | 41 AtomicCmpxchgInit(IceType_i16, "i16"), |
| 42 AtomicCmpxchgInit(IceType_i32, "i32"), | 42 AtomicCmpxchgInit(IceType_i32, "i32"), |
| 43 AtomicCmpxchgInit(IceType_i64, "i64"), | 43 AtomicCmpxchgInit(IceType_i64, "i64"), |
| 44 #undef AtomicCmpxchgInit | 44 #undef AtomicCmpxchgInit |
| 45 { { { Intrinsics::AtomicFence, true }, { IceType_void, IceType_i32 }, 2 }, | 45 { { { Intrinsics::AtomicFence, true }, { IceType_void, IceType_i32 }, 2 }, |
| 46 "nacl.atomic.fence" }, | 46 "nacl.atomic.fence" }, |
| 47 { { { Intrinsics::AtomicFenceAll, true }, { IceType_void }, 1 }, | 47 { { { Intrinsics::AtomicFenceAll, true }, { IceType_void }, 1 }, |
| 48 "nacl.atomic.fence.all" }, | 48 "nacl.atomic.fence.all" }, |
| 49 { { { Intrinsics::AtomicIsLockFree, true }, | 49 { { { Intrinsics::AtomicIsLockFree, false }, |
| 50 { IceType_i1, IceType_i32, IceType_i32 }, 3 }, | 50 { IceType_i1, IceType_i32, IceType_i32 }, 3 }, |
| 51 "nacl.atomic.is.lock.free" }, | 51 "nacl.atomic.is.lock.free" }, |
| 52 | 52 |
| 53 #define AtomicLoadInit(Overload, NameSuffix) \ | 53 #define AtomicLoadInit(Overload, NameSuffix) \ |
| 54 { \ | 54 { \ |
| 55 { \ | 55 { \ |
| 56 { Intrinsics::AtomicLoad, true } \ | 56 { Intrinsics::AtomicLoad, true } \ |
| 57 , { Overload, IceType_i32, IceType_i32 }, 3 \ | 57 , { Overload, IceType_i32, IceType_i32 }, 3 \ |
| 58 } \ | 58 } \ |
| 59 , "nacl.atomic.load." NameSuffix \ | 59 , "nacl.atomic.load." NameSuffix \ |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 return NULL; | 198 return NULL; |
| 199 return &it->second; | 199 return &it->second; |
| 200 } | 200 } |
| 201 | 201 |
| 202 bool Intrinsics::VerifyMemoryOrder(uint64_t Order) { | 202 bool Intrinsics::VerifyMemoryOrder(uint64_t Order) { |
| 203 // There is only one memory ordering for atomics allowed right now. | 203 // There is only one memory ordering for atomics allowed right now. |
| 204 return Order == Intrinsics::MemoryOrderSequentiallyConsistent; | 204 return Order == Intrinsics::MemoryOrderSequentiallyConsistent; |
| 205 } | 205 } |
| 206 | 206 |
| 207 } // end of namespace Ice | 207 } // end of namespace Ice |
| OLD | NEW |