| //===--- swift_sections.S -------------------------------------------------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// \swift_sections.S |
| /// This file contains section markers for the computation of the location and |
| /// size of the conformances and metadata information for non-Darwin targets. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #if !defined(SWIFT_BEGIN) && !defined(SWIFT_END) |
| #error "Define SWIFT_BEGIN or SWIFT_END to compile this file." |
| #endif |
| |
| .macro define_sized_section name=1 |
| |
| #if defined(__arm__) |
| .section .\()\name, "aw", %progbits |
| #else |
| .section .\()\name, "aw", @progbits |
| #endif |
| |
| .p2align 3 |
| |
| #if defined(SWIFT_BEGIN) |
| .globl .\()\name\()_start |
| .protected .\()\name\()_start |
| .\()\name\()_start: |
| #if defined(__BIG_ENDIAN__) |
| .long 0 |
| .long .\()\name\()_end - .\()\name\()_start - 8 |
| #else |
| .long .\()\name\()_end - .\()\name\()_start - 8 |
| .long 0 |
| #endif |
| #endif |
| |
| #if defined(SWIFT_END) |
| .globl .\()\name\()_end |
| .protected .\()\name\()_end |
| .\()\name\()_end: |
| #endif |
| |
| .endm |
| |
| .macro define_simple_section name=1 |
| |
| #if defined(SWIFT_BEGIN) |
| #if defined(__arm__) |
| .section .\()\name, "aw", %progbits |
| #else |
| .section .\()\name, "aw", @progbits |
| #endif |
| |
| // TODO .p2align 2 ? |
| |
| .globl .\()\name\()_section |
| .protected .\()\name\()_section |
| .\()\name\()_section: |
| #endif |
| |
| .endm |
| |
| define_simple_section swift3_typeref |
| define_simple_section swift3_reflstr |
| define_simple_section swift3_fieldmd |
| define_simple_section swift3_assocty |
| |
| define_sized_section swift2_protocol_conformances |
| define_sized_section swift2_type_metadata |
| #if defined(__arm__) |
| .section .note.GNU-stack,"",%progbits |
| #else |
| .section .note.GNU-stack,"",@progbits |
| #endif |