llvm.org GIT mirror llvm / release_37 test / MC / ARM / data-in-code.ll
release_37

Tree @release_37 (Download .tar.gz)

data-in-code.ll @release_37

defaf83
ed788b6
f89da72
6eb3e87
defaf83
ed788b6
f89da72
6eb3e87
 
 
 
 
7c9c6ed
defaf83
 
 
 
 
6eb3e87
 
defaf83
6eb3e87
 
defaf83
6eb3e87
 
defaf83
6eb3e87
 
defaf83
6eb3e87
 
 
 
 
f89da72
 
 
 
 
 
 
 
 
 
 
ed788b6
f89da72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed788b6
f89da72
 
 
 
 
6eb3e87
703197f
 
 
 
 
 
 
 
 
 
6eb3e87
 
f89da72
 
ed788b6
f89da72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed788b6
f89da72
 
 
 
 
6eb3e87
 
 
 
;; RUN: llc -verify-machineinstrs \
;; RUN:   -mtriple=armv7-linux-gnueabi -filetype=obj %s -o - | \
;; RUN:   llvm-readobj -t | FileCheck -check-prefix=ARM %s

;; RUN: llc -verify-machineinstrs \
;; RUN:   -mtriple=thumbv7-linux-gnueabi -filetype=obj %s -o - | \
;; RUN:   llvm-readobj -t | FileCheck -check-prefix=TMB %s

;; Ensure that if a jump table is generated that it has Mapping Symbols
;; marking the data-in-code region.

define void @foo(i32* %ptr) nounwind ssp {
  %tmp = load i32, i32* %ptr, align 4
  switch i32 %tmp, label %exit [
    i32 0, label %bb0
    i32 1, label %bb1
    i32 2, label %bb2
    i32 3, label %bb3
  ]
bb0:
  store i32 0, i32* %ptr, align 4
  br label %exit
bb1:
  store i32 1, i32* %ptr, align 4
  br label %exit
bb2:
  store i32 2, i32* %ptr, align 4
  br label %exit
bb3:
  store i32 3, i32* %ptr, align 4
  br label %exit
exit:
  ret void
}

;; ARM:        Symbol {
;; ARM:          Name: $a
;; ARM-NEXT:     Value: 0x0
;; ARM-NEXT:     Size: 0
;; ARM-NEXT:     Binding: Local
;; ARM-NEXT:     Type: None
;; ARM-NEXT:     Other:
;; ARM-NEXT:     Section: [[MIXED_SECT:[^ ]+]]

;; ARM:        Symbol {
;; ARM:          Name: $a
;; ARM-NEXT:     Value: 0x{{[0-9A-F]+}}
;; ARM-NEXT:     Size: 0
;; ARM-NEXT:     Binding: Local
;; ARM-NEXT:     Type: None
;; ARM-NEXT:     Other:
;; ARM-NEXT:     Section: [[MIXED_SECT]]

;; ARM:        Symbol {
;; ARM:          Name: $d
;; ARM-NEXT:     Value: 0
;; ARM-NEXT:     Size: 0
;; ARM-NEXT:     Binding: Local
;; ARM-NEXT:     Type: None

;; ARM:        Symbol {
;; ARM:          Name: $d
;; ARM-NEXT:     Value: 0x{{[0-9A-F]+}}
;; ARM-NEXT:     Size: 0
;; ARM-NEXT:     Binding: Local
;; ARM-NEXT:     Type: None
;; ARM-NEXT:     Other:
;; ARM-NEXT:     Section: [[MIXED_SECT]]

;; ARM:        Symbol {
;; ARM:          Name: $d
;; ARM-NEXT:     Value: 0x0
;; ARM-NEXT:     Size: 0
;; ARM-NEXT:     Binding: Local (0x0)
;; ARM-NEXT:     Type: None (0x0)
;; ARM-NEXT:     Other: 0
;; ARM-NEXT:     Section: .ARM.exidx
;; ARM-NEXT:   }

;; ARM-NOT:     ${{[atd]}}

;; TMB:        Symbol {
;; TMB:          Name: $d.2
;; TMB-NEXT:     Value: 0x{{[0-9A-F]+}}
;; TMB-NEXT:     Size: 0
;; TMB-NEXT:     Binding: Local
;; TMB-NEXT:     Type: None
;; TMB-NEXT:     Other:
;; TMB-NEXT:     Section: [[MIXED_SECT:[^ ]+]]

;; TMB:        Symbol {
;; TMB:          Name: $t
;; TMB-NEXT:     Value: 0x0
;; TMB-NEXT:     Size: 0
;; TMB-NEXT:     Binding: Local
;; TMB-NEXT:     Type: None
;; TMB-NEXT:     Other:
;; TMB-NEXT:     Section: [[MIXED_SECT]]

;; TMB:        Symbol {
;; TMB:          Name: $t
;; TMB-NEXT:     Value: 0x{{[0-9A-F]+}}
;; TMB-NEXT:     Size: 0
;; TMB-NEXT:     Binding: Local
;; TMB-NEXT:     Type: None
;; TMB-NEXT:     Other:
;; TMB-NEXT:     Section: [[MIXED_SECT]]


;; TMB-NOT:     ${{[atd]}}