mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-24 14:05:49 -04:00

This adds Clang support for the ARM64 backend. There are definitely still some rough edges, so please bring up any issues you see with this patch. As with the LLVM commit though, we think it'll be more useful for merging with AArch64 from within the tree. llvm-svn: 205100
46 lines
675 B
C
46 lines
675 B
C
// RUN: %clang_cc1 -triple arm64-apple-ios -emit-llvm -o - %s | FileCheck %s
|
|
|
|
// rdar://9167275
|
|
|
|
int t1()
|
|
{
|
|
int x;
|
|
__asm__("mov %0, 7" : "=r" (x));
|
|
return x;
|
|
}
|
|
|
|
long t2()
|
|
{
|
|
long x;
|
|
__asm__("mov %0, 7" : "=r" (x));
|
|
return x;
|
|
}
|
|
|
|
long t3()
|
|
{
|
|
long x;
|
|
__asm__("mov %w0, 7" : "=r" (x));
|
|
return x;
|
|
}
|
|
|
|
// rdar://9281206
|
|
|
|
void t4(long op) {
|
|
long x1;
|
|
asm ("mov x0, %1; svc #0;" : "=r"(x1) :"r"(op),"r"(x1) :"x0" );
|
|
}
|
|
|
|
// rdar://9394290
|
|
|
|
float t5(float x) {
|
|
__asm__("fadd %0, %0, %0" : "+w" (x));
|
|
return x;
|
|
}
|
|
|
|
// rdar://9865712
|
|
void t6 (void *f, int g) {
|
|
// CHECK: t6
|
|
// CHECK: call void asm "str $1, $0", "=*Q,r"
|
|
asm("str %1, %0" : "=Q"(f) : "r"(g));
|
|
}
|