64 lines
1.7 KiB
LLVM
64 lines
1.7 KiB
LLVM
; REQUIRES: arm
|
|
;; Test we can infer the e_machine value EM_ARM from a bitcode file.
|
|
|
|
; RUN: split-file %s %t
|
|
|
|
; RUN: llvm-as %t/arm.ll -o %t/arm.o
|
|
; RUN: ld.lld %t/arm.o -o %t/arm
|
|
; RUN: llvm-readobj -h %t/arm | FileCheck %s --check-prefix=ARM
|
|
; RUN: llvm-as %t/armeb.ll -o %t/armeb.o
|
|
; RUN: ld.lld %t/armeb.o -o %t/armeb
|
|
; RUN: llvm-readobj -h %t/armeb | FileCheck %s --check-prefix=ARMEB
|
|
|
|
; RUN: llvm-as %t/thumb.ll -o %t/thumb.o
|
|
; RUN: ld.lld %t/thumb.o -o %t/thumb
|
|
; RUN: llvm-readobj -h %t/thumb | FileCheck %s --check-prefix=THUMB
|
|
; RUN: llvm-as %t/thumbeb.ll -o %t/thumbeb.o
|
|
; RUN: ld.lld %t/thumbeb.o -o %t/thumbeb
|
|
; RUN: llvm-readobj -h %t/thumbeb | FileCheck %s --check-prefix=THUMBEB
|
|
|
|
; ARM: Class: 32-bit
|
|
; ARM: DataEncoding: LittleEndian
|
|
; ARM: Machine: EM_ARM (
|
|
; ARMEB: Class: 32-bit
|
|
; ARMEB: DataEncoding: BigEndian
|
|
; ARMEB: Machine: EM_ARM (
|
|
|
|
; THUMB: Class: 32-bit
|
|
; THUMB: DataEncoding: LittleEndian
|
|
; THUMB: Machine: EM_ARM (
|
|
; THUMBEB: Class: 32-bit
|
|
; THUMBEB: DataEncoding: BigEndian
|
|
; THUMBEB: Machine: EM_ARM (
|
|
|
|
;--- arm.ll
|
|
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "armv7-linux-musleabi"
|
|
|
|
define void @_start() {
|
|
ret void
|
|
}
|
|
|
|
;--- thumb.ll
|
|
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "thumbv8m.base-none-unknown-gnueabi"
|
|
|
|
define void @_start() {
|
|
ret void
|
|
}
|
|
|
|
;--- armeb.ll
|
|
target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "armebv7-unknown-linux-musleabi"
|
|
|
|
define void @_start() {
|
|
ret void
|
|
}
|
|
|
|
;--- thumbeb.ll
|
|
target datalayout = "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "thumbebv8m.base-none-unknown-gnueabi"
|
|
|
|
define void @_start() {
|
|
ret void
|
|
}
|