136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ This test has a partner (ltorg.s) that contains matching 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ tests for the .ltorg on linux targets. We need separate files 336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ because the syntax for switching sections and temporary labels differs 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ between darwin and linux. Any tests added here should have a matching 536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ test added there. 636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@RUN: llvm-mc -triple armv7-apple-darwin %s | FileCheck %s 836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@RUN: llvm-mc -triple thumbv5-apple-darwin %s | FileCheck %s 936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@RUN: llvm-mc -triple thumbv7-apple-darwin %s | FileCheck %s 1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ check that ltorg dumps the constant pool at the current location 1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,a,regular,pure_instructions 1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f2: 1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf2: 1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =0x10001 1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp0 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f3 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.ltorg 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp0: 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long 65537 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f3: 2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf3: 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ check that ltorg clears the constant pool after dumping it 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,b,regular,pure_instructions 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f4: 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf4: 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =0x10002 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp1 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f5 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.ltorg 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp1: 4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long 65538 4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f5: 5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf5: 5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =0x10003 5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp2 5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f6 5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.ltorg 5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp2: 6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long 65539 6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f6: 6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf6: 6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ check that ltorg does not issue an error if there is no constant pool 7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,c,regular,pure_instructions 7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f7: 7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf7: 7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f8 7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .ltorg 7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf8: 7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ check that ltorg works for labels 8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,d,regular,pure_instructions 8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f9: 8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf9: 8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =bar 8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp3 8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f10 9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.ltorg 9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 9536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 9636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 9736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp3: 9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long bar 9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 10036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f10: 10236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf10: 10336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 10436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 10536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 10636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ check that use of ltorg does not prevent dumping non-empty constant pools at end of section 10736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,e,regular,pure_instructions 10836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f11: 10936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf11: 11036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 11136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 11236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =0x10004 11336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp4 11436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines b f12 11536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .ltorg 11636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 11736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 11836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 11936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp4: 12036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long 65540 12136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 12236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 12336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f12: 12436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf12: 12536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 12636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldr r0, =0x10005 12736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: ldr r0, Ltmp5 12836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 12936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.section __TEXT,f,regular,pure_instructions 13036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: f13 13136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesf13: 13236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 13336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines adds r0, r0, #1 13436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 13536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ should not have a constant pool at end of section with empty constant pools 13636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-NOT: .section __TEXT,a,regular,pure_instructions 13736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-NOT: .section __TEXT,b,regular,pure_instructions 13836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-NOT: .section __TEXT,c,regular,pure_instructions 13936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-NOT: .section __TEXT,d,regular,pure_instructions 14036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 14136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ should have a non-empty constant pool at end of this section 14236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .section __TEXT,e,regular,pure_instructions 14336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ constant pool 14436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .align 2 14536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .data_region 14636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-LABEL: Ltmp5: 14736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .long 65541 14836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: .end_data_region 14936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 15036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ should not have a constant pool at end of section with empty constant pools 15136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK-NOT: .section __TEXT,f,regular,pure_instructions 152