mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
0919e582e6
Both AArch64 and ARM support llvm.<arch>.thread.pointer intrinsics that just return the thread pointer. I have a pending patch that does the same for SystemZ (D19054), and there are many more targets that could benefit from one. This patch merges the ARM and AArch64 intrinsics into a single target independent one that will also be used by subsequent targets. Differential Revision: http://reviews.llvm.org/D19098 llvm-svn: 266818
12 lines
300 B
LLVM
12 lines
300 B
LLVM
; RUN: llc < %s -march=aarch64 -mtriple=aarch64-linux-gnu | FileCheck %s
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare i8* @llvm.thread.pointer() #1
|
|
|
|
define i8* @thread_pointer() {
|
|
; CHECK: thread_pointer:
|
|
; CHECK: mrs {{x[0-9]+}}, TPIDR_EL0
|
|
%1 = tail call i8* @llvm.thread.pointer()
|
|
ret i8* %1
|
|
}
|