mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
a597f91ffb
ChangeSection incorrectly registers LastEMSInfo as belonging to the previous section, not the current section. This happens to work when changing sections using .section, as the previous section is set to the current section before the call to ChangeSection, but not when using .popsection. Differential Revision: https://reviews.llvm.org/D32225 llvm-svn: 300831
52 lines
1.4 KiB
ArmAsm
52 lines
1.4 KiB
ArmAsm
@ RUN: llvm-mc -triple=armv7-linux-gnueabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s
|
|
|
|
.text
|
|
add r0, r0, r0
|
|
|
|
@ .wibble should *not* inherit .text's mapping symbol. It's a completely different section.
|
|
.section .wibble
|
|
add r0, r0, r0
|
|
|
|
@ A section should be able to start with a $t
|
|
.section .starts_thumb
|
|
.thumb
|
|
adds r0, r0, r0
|
|
|
|
@ A setion should be able to start with a $d
|
|
.section .starts_data
|
|
.word 42
|
|
|
|
@ Changing back to .text should not emit a redundant $a
|
|
.text
|
|
.arm
|
|
add r0, r0, r0
|
|
|
|
@ Similarly no $t if we change back .starts_thumb using .pushsection
|
|
.pushsection .starts_thumb
|
|
.thumb
|
|
adds r0, r0, r0
|
|
|
|
@ When we change back to .text using .popsection .thumb is still active, so we
|
|
@ should emit a $t
|
|
.popsection
|
|
add r0, r0, r0
|
|
|
|
@ .ident does a push then pop of the .comment section, so the .word should
|
|
@ cause $d to appear in the .text section
|
|
.ident "ident"
|
|
.word 0
|
|
|
|
@ With all those constraints, we want:
|
|
@ + .text to have $a at 0, $t at 8, $d at 12
|
|
@ + .wibble to have $a at 0
|
|
@ + .starts_thumb to have $t at 0
|
|
@ + .starts_data to have $d at 0
|
|
|
|
@ CHECK: 00000000 .text 00000000 $a
|
|
@ CHECK-NEXT: 00000000 .wibble 00000000 $a
|
|
@ CHECK-NEXT: 0000000a .text 00000000 $d
|
|
@ CHECK-NEXT: 00000000 .starts_thumb 00000000 $t
|
|
@ CHECK-NEXT: 00000008 .text 00000000 $t
|
|
@ CHECK-NOT: ${{[adt]}}
|
|
|