llvm.org GIT mirror llvm / release_39 test / MC / ARM / ltorg.s
release_39

Tree @release_39 (Download .tar.gz)

ltorg.s @release_39

3793977
 
 
 
 
 
 
 
 
 
 
 
 
 
7ed2299
d463c7e
3793977
 
 
 
 
d0eaa33
d463c7e
7ed2299
3793977
 
 
 
 
 
 
 
 
 
7ed2299
d463c7e
3793977
 
 
 
 
d0eaa33
d463c7e
7ed2299
3793977
 
 
 
 
7ed2299
d463c7e
3793977
 
 
 
d0eaa33
d463c7e
7ed2299
3793977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d463c7e
3793977
 
 
 
 
 
d0eaa33
d463c7e
3793977
 
 
 
 
 
 
 
 
 
 
 
 
7ed2299
d463c7e
3793977
 
 
d0eaa33
d463c7e
7ed2299
3793977
 
 
7ed2299
d463c7e
3793977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0eaa33
d463c7e
7ed2299
3793977
 
 
@ This test has a partner (ltorg-darwin.s) that contains matching
@ tests for the .ltorg on darwin targets. We need separate files
@ because the syntax for switching sections and temporary labels differs
@ between darwin and linux. Any tests added here should have a matching
@ test added there.

@RUN: llvm-mc -triple   armv7-unknown-linux-gnueabi %s | FileCheck %s
@RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck %s
@RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck %s

@ check that ltorg dumps the constant pool at the current location
.section a,"ax",%progbits
@ CHECK-LABEL: f2:
f2:
  ldr r0, =0x10002
@ CHECK: ldr r0, .Ltmp[[TMP0:[0-9+]]]
  adds r0, r0, #1
  adds r0, r0, #1
  b f3
.ltorg
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP0]]
@ CHECK: .long 65538

@ CHECK-LABEL: f3:
f3:
  adds r0, r0, #1
  adds r0, r0, #1

@ check that ltorg clears the constant pool after dumping it
.section b,"ax",%progbits
@ CHECK-LABEL: f4:
f4:
  ldr r0, =0x10003
@ CHECK: ldr r0, .Ltmp[[TMP1:[0-9+]]]
  adds r0, r0, #1
  adds r0, r0, #1
  b f5
.ltorg
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP1]]
@ CHECK: .long 65539

@ CHECK-LABEL: f5:
f5:
  adds r0, r0, #1
  adds r0, r0, #1
  ldr r0, =0x10004
@ CHECK: ldr r0, .Ltmp[[TMP2:[0-9+]]]
  adds r0, r0, #1
  b f6
.ltorg
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP2]]
@ CHECK: .long 65540

@ CHECK-LABEL: f6:
f6:
  adds r0, r0, #1
  adds r0, r0, #1

@ check that ltorg does not issue an error if there is no constant pool
.section c,"ax",%progbits
@ CHECK-LABEL: f7:
f7:
  adds r0, r0, #1
  b f8
  .ltorg
f8:
  adds r0, r0, #1

@ check that ltorg works for labels
.section d,"ax",%progbits
@ CHECK-LABEL: f9:
f9:
  adds r0, r0, #1
  adds r0, r0, #1
  ldr r0, =bar
@ CHECK: ldr r0, .Ltmp[[TMP3:[0-9+]]]
  adds r0, r0, #1
  adds r0, r0, #1
  adds r0, r0, #1
  b f10
.ltorg
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP3]]
@ CHECK: .long bar

@ CHECK-LABEL: f10:
f10:
  adds r0, r0, #1
  adds r0, r0, #1

@ check that use of ltorg does not prevent dumping non-empty constant pools at end of section
.section e,"ax",%progbits
@ CHECK-LABEL: f11:
f11:
  adds r0, r0, #1
  adds r0, r0, #1
  ldr r0, =0x10005
@ CHECK: ldr r0, .Ltmp[[TMP4:[0-9+]]]
  b f12
  .ltorg
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP4]]
@ CHECK: .long 65541
@ CHECK-LABEL: f12:
f12:
  adds r0, r0, #1
  ldr r0, =0x10006
@ CHECK: ldr r0, .Ltmp[[TMP5:[0-9+]]]

.section f,"ax",%progbits
@ CHECK-LABEL: f13
f13:
  adds r0, r0, #1
  adds r0, r0, #1

@ should not have a constant pool at end of section with empty constant pools
@ CHECK-NOT: .section a,"ax",%progbits
@ CHECK-NOT: .section b,"ax",%progbits
@ CHECK-NOT: .section c,"ax",%progbits
@ CHECK-NOT: .section d,"ax",%progbits

@ should have a non-empty constant pool at end of this section
@ CHECK: .section e,"ax",%progbits
@ constant pool
@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP5]]
@ CHECK: .long 65542

@ should not have a constant pool at end of section with empty constant pools
@ CHECK-NOT: .section f,"ax",%progbits