Skip to content

Commit 98e6367

Browse files
Merge pull request swiftlang#8815 from aschwaighofer/runtime_support_builtin_int512
Runtime: Add support for Builtin.Int512
2 parents 303a3e5 + 7321153 commit 98e6367

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

include/swift/Runtime/Metadata.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -907,6 +907,8 @@ SWIFT_RUNTIME_EXPORT
907907
const ValueWitnessTable VALUE_WITNESS_SYM(Bi128_); // Builtin.Int128
908908
SWIFT_RUNTIME_EXPORT
909909
const ValueWitnessTable VALUE_WITNESS_SYM(Bi256_); // Builtin.Int256
910+
SWIFT_RUNTIME_EXPORT
911+
const ValueWitnessTable VALUE_WITNESS_SYM(Bi512_); // Builtin.Int512
910912

911913
// The object-pointer table can be used for arbitrary Swift refcounted
912914
// pointer types.
@@ -1337,6 +1339,8 @@ const FullOpaqueMetadata METADATA_SYM(Bi128_); // Builtin.Int128
13371339
SWIFT_RUNTIME_EXPORT
13381340
const FullOpaqueMetadata METADATA_SYM(Bi256_); // Builtin.Int256
13391341
SWIFT_RUNTIME_EXPORT
1342+
const FullOpaqueMetadata METADATA_SYM(Bi512_); // Builtin.Int512
1343+
SWIFT_RUNTIME_EXPORT
13401344
const FullOpaqueMetadata METADATA_SYM(Bo); // Builtin.NativeObject
13411345
SWIFT_RUNTIME_EXPORT
13421346
const FullOpaqueMetadata METADATA_SYM(Bb); // Builtin.BridgeObject

stdlib/public/runtime/KnownMetadata.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ namespace {
4141
struct alignas(32) int256_like {
4242
char data[32];
4343
};
44+
struct alignas(64) int512_like {
45+
char data[64];
46+
};
4447
} // end anonymous namespace
4548

4649
// We use explicit sizes and alignments here just in case the C ABI
@@ -57,6 +60,8 @@ const ValueWitnessTable swift::VALUE_WITNESS_SYM(Bi128_) =
5760
ValueWitnessTableForBox<NativeBox<int128_like, 16>>::table;
5861
const ValueWitnessTable swift::VALUE_WITNESS_SYM(Bi256_) =
5962
ValueWitnessTableForBox<NativeBox<int256_like, 32>>::table;
63+
const ValueWitnessTable swift::VALUE_WITNESS_SYM(Bi512_) =
64+
ValueWitnessTableForBox<NativeBox<int512_like, 64>>::table;
6065

6166
/// The basic value-witness table for Swift object pointers.
6267
const ExtraInhabitantsValueWitnessTable swift::VALUE_WITNESS_SYM(Bo) =
@@ -157,6 +162,7 @@ OPAQUE_METADATA(Bi32_)
157162
OPAQUE_METADATA(Bi64_)
158163
OPAQUE_METADATA(Bi128_)
159164
OPAQUE_METADATA(Bi256_)
165+
OPAQUE_METADATA(Bi512_)
160166
OPAQUE_METADATA(Bo)
161167
OPAQUE_METADATA(Bb)
162168
OPAQUE_METADATA(Bp)

stdlib/public/runtime/Metadata.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,6 +1381,9 @@ void swift::installCommonValueWitnesses(ValueWitnessTable *vwtable) {
13811381
case sizeWithAlignmentMask(32, 31):
13821382
commonVWT = &VALUE_WITNESS_SYM(Bi256_);
13831383
break;
1384+
case sizeWithAlignmentMask(64, 63):
1385+
commonVWT = &VALUE_WITNESS_SYM(Bi512_);
1386+
break;
13841387
}
13851388

13861389
#define INSTALL_POD_COMMON_WITNESS(NAME) vwtable->NAME = commonVWT->NAME;

0 commit comments

Comments
 (0)