File tree Expand file tree Collapse file tree 3 files changed +56
-99
lines changed Expand file tree Collapse file tree 3 files changed +56
-99
lines changed Original file line number Diff line number Diff line change @@ -18,57 +18,9 @@ ${autogenerated_warning()}
1818#if ATOMICS_NATIVE_BUILTINS
1919import Builtin
2020
21- #if ${ptrBitWidth32}
22- @frozen
23- @_alignment(8)
24- public struct DoubleWord {
25- @usableFromInline
26- internal typealias _Builtin = Builtin.Int64
27-
28- public var first: UInt
29- public var second: UInt
30-
31- @inlinable @inline(__always)
32- public init(first: UInt, second: UInt) {
33- self.first = first
34- self.second = second
35- }
36- }
37- #else
38- @frozen
39- @_alignment(16)
40- public struct DoubleWord {
41- @usableFromInline
42- internal typealias _Builtin = Builtin.Int128
43-
44- public var first: UInt
45- public var second: UInt
46-
47- @inlinable @inline(__always)
48- public init(first: UInt, second: UInt) {
49- self.first = first
50- self.second = second
51- }
52- }
53- #endif
54-
55- extension DoubleWord {
56- @_alwaysEmitIntoClient
57- @inline(__always)
58- internal init(_ builtin: _Builtin) {
59- self = unsafeBitCast(builtin, to: DoubleWord.self)
60- }
61-
62- @_alwaysEmitIntoClient
63- @inline(__always)
64- internal var _value: _Builtin {
65- unsafeBitCast(self, to: _Builtin.self)
66- }
67- }
68-
6921extension Bool {
7022 @_alwaysEmitIntoClient
71- @inline(__always)
23+ @_transparent
7224 internal init(_ builtin: Builtin.Int1) {
7325 self = unsafeBitCast(builtin, to: Bool.self)
7426 }
Original file line number Diff line number Diff line change 2121#if ATOMICS_NATIVE_BUILTINS
2222import Builtin
2323
24- #if (compiler(>=5.9) && _pointerBitWidth(_32)) || (compiler(<5.9) && (arch(i386) || arch(arm) || arch(arm64_32) || arch(wasm32)))
25- @frozen
26- @_alignment ( 8 )
27- public struct DoubleWord {
28- @usableFromInline
29- internal typealias _Builtin = Builtin . Int64
30-
31- public var first : UInt
32- public var second : UInt
33-
34- @inlinable @inline ( __always)
35- public init ( first: UInt , second: UInt ) {
36- self . first = first
37- self . second = second
38- }
39- }
40- #else
41- @frozen
42- @_alignment ( 16 )
43- public struct DoubleWord {
44- @usableFromInline
45- internal typealias _Builtin = Builtin . Int128
46-
47- public var first : UInt
48- public var second : UInt
49-
50- @inlinable @inline ( __always)
51- public init ( first: UInt , second: UInt ) {
52- self . first = first
53- self . second = second
54- }
55- }
56- #endif
57-
58- extension DoubleWord {
59- @_alwaysEmitIntoClient
60- @inline ( __always)
61- internal init ( _ builtin: _Builtin ) {
62- self = unsafeBitCast ( builtin, to: DoubleWord . self)
63- }
64-
65- @_alwaysEmitIntoClient
66- @inline ( __always)
67- internal var _value : _Builtin {
68- unsafeBitCast ( self , to: _Builtin. self)
69- }
70- }
71-
7224extension Bool {
7325 @_alwaysEmitIntoClient
74- @inline ( __always )
26+ @_transparent
7527 internal init ( _ builtin: Builtin . Int1 ) {
7628 self = unsafeBitCast ( builtin, to: Bool . self)
7729 }
Original file line number Diff line number Diff line change 1010//
1111//===----------------------------------------------------------------------===//
1212
13- #if !ATOMICS_NATIVE_BUILTINS
13+ #if ATOMICS_NATIVE_BUILTINS
14+ import Builtin
15+
16+ #if _pointerBitWidth(_32)
17+ @frozen
18+ @_alignment ( 8 )
19+ public struct DoubleWord {
20+ @usableFromInline
21+ internal typealias _Builtin = Builtin . Int64
22+
23+ public var first : UInt
24+ public var second : UInt
25+
26+ @inlinable @inline ( __always)
27+ public init ( first: UInt , second: UInt ) {
28+ self . first = first
29+ self . second = second
30+ }
31+ }
32+ #elseif _pointerBitWidth(_64)
33+ @frozen
34+ @_alignment ( 16 )
35+ public struct DoubleWord {
36+ @usableFromInline
37+ internal typealias _Builtin = Builtin . Int128
38+
39+ public var first : UInt
40+ public var second : UInt
41+
42+ @inlinable @inline ( __always)
43+ public init ( first: UInt , second: UInt ) {
44+ self . first = first
45+ self . second = second
46+ }
47+ }
48+ #else
49+ #error("Unexpected pointer bit width")
50+ #endif
51+
52+ extension DoubleWord {
53+ @_alwaysEmitIntoClient
54+ @_transparent
55+ internal init ( _ builtin: _Builtin ) {
56+ self = unsafeBitCast ( builtin, to: DoubleWord . self)
57+ }
58+
59+ @_alwaysEmitIntoClient
60+ @_transparent
61+ internal var _value : _Builtin {
62+ unsafeBitCast ( self , to: _Builtin. self)
63+ }
64+ }
65+
66+ #else // !ATOMICS_NATIVE_BUILTINS
1467import _AtomicsShims
1568public typealias DoubleWord = _AtomicsShims . DoubleWord
1669#endif
You can’t perform that action at this time.
0 commit comments