|
| 1 | +// RUN: %target-swift-frontend -enable-experimental-feature SymbolLinkageMarkers -primary-file %S/section.swift -S -parse-as-library | %FileCheck %s --check-prefix=ASM --check-prefix ASM-%target-os |
| 2 | +// REQUIRES: CPU=wasm32 |
| 3 | +// REQUIRES: swift_in_compiler |
| 4 | + |
| 5 | +// Wasm cannot have user defined section name for code sections |
| 6 | +// |
| 7 | +// ASM-NOT: .section{{.*}}__TEXT,__mysection |
| 8 | +// ASM: .section ".text.$s7section3fooyyF" |
| 9 | +// ASM: $s7section3fooyyF: |
| 10 | + |
| 11 | +// Wasm places one-time init token on .bss section before each "__TEXT,__mysection" |
| 12 | +// so need to put .section directives for each data to switch sections. |
| 13 | +// Here is an example pattern of a global variable with @section |
| 14 | +// ``` |
| 15 | +// .type $s7section2g0_Wz,@object |
| 16 | +// .section ".bss.$s7section2g0_Wz","",@ |
| 17 | +// .p2align 2, 0x0 |
| 18 | +// $s7section2g0_Wz: |
| 19 | +// .int32 0 |
| 20 | +// .size $s7section2g0_Wz, 4 |
| 21 | +// |
| 22 | +// .hidden $s7section2g0Sivp |
| 23 | +// .type $s7section2g0Sivp,@object |
| 24 | +// .section "__TEXT,__mysection","",@ |
| 25 | +// .globl $s7section2g0Sivp |
| 26 | +// .p2align 2, 0x0 |
| 27 | +// $s7section2g0Sivp: |
| 28 | +// .int32 1 |
| 29 | +// .size $s7section2g0Sivp, 4 |
| 30 | +// ``` |
| 31 | + |
| 32 | +// |
| 33 | +// ASM: .section ".bss.$s7section2g0_Wz" |
| 34 | +// ASM: $s7section2g0_Wz: |
| 35 | +// ASM: .section "__TEXT,__mysection" |
| 36 | +// ASM: $s7section2g0Sivp: |
| 37 | + |
| 38 | +// ASM: .section ".bss.$s7section2g1_Wz" |
| 39 | +// ASM: $s7section2g1_Wz: |
| 40 | +// ASM: .section "__TEXT,__mysection" |
| 41 | +// ASM: $s7section2g1Si_Sitvp: |
| 42 | + |
| 43 | +// ASM: .section ".bss.$s7section2g2_Wz" |
| 44 | +// ASM: $s7section2g2_Wz: |
| 45 | +// ASM: .section "__TEXT,__mysection" |
| 46 | +// ASM: $s7section2g2Sbvp: |
| 47 | + |
| 48 | +// ASM: .section ".bss.$s7section2g3_Wz" |
| 49 | +// ASM: $s7section2g3_Wz: |
| 50 | +// ASM: .section "__TEXT,__mysection" |
| 51 | +// ASM: $s7section2g3Sbvp: |
| 52 | + |
| 53 | +// ASM: .section ".bss.$s7section2g4_Wz" |
| 54 | +// ASM: $s7section2g4_Wz: |
| 55 | +// ASM: .section "__TEXT,__mysection" |
| 56 | +// ASM: $s7section2g4SpySiGSgvp: |
| 57 | + |
| 58 | +// ASM: .section ".bss.$s7section2g5_Wz" |
| 59 | +// ASM: $s7section2g5_Wz: |
| 60 | +// ASM: .section "__TEXT,__mysection" |
| 61 | +// ASM: $s7section2g5SpySiGSgvp: |
0 commit comments