annotate clang/test/CodeGen/asm_arm64.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple arm64-apple-ios -emit-llvm -o - %s | FileCheck %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 // rdar://9167275
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 int t1()
anatofuz
parents:
diff changeset
6 {
anatofuz
parents:
diff changeset
7 int x;
anatofuz
parents:
diff changeset
8 __asm__("mov %0, 7" : "=r" (x));
anatofuz
parents:
diff changeset
9 return x;
anatofuz
parents:
diff changeset
10 }
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 long t2()
anatofuz
parents:
diff changeset
13 {
anatofuz
parents:
diff changeset
14 long x;
anatofuz
parents:
diff changeset
15 __asm__("mov %0, 7" : "=r" (x));
anatofuz
parents:
diff changeset
16 return x;
anatofuz
parents:
diff changeset
17 }
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 long t3()
anatofuz
parents:
diff changeset
20 {
anatofuz
parents:
diff changeset
21 long x;
anatofuz
parents:
diff changeset
22 __asm__("mov %w0, 7" : "=r" (x));
anatofuz
parents:
diff changeset
23 return x;
anatofuz
parents:
diff changeset
24 }
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 // rdar://9281206
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 void t4(long op) {
anatofuz
parents:
diff changeset
29 long x1;
anatofuz
parents:
diff changeset
30 asm ("mov x0, %1; svc #0;" : "=r"(x1) :"r"(op),"r"(x1) :"x0" );
anatofuz
parents:
diff changeset
31 }
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 // rdar://9394290
anatofuz
parents:
diff changeset
34
anatofuz
parents:
diff changeset
35 float t5(float x) {
anatofuz
parents:
diff changeset
36 __asm__("fadd %0, %0, %0" : "+w" (x));
anatofuz
parents:
diff changeset
37 return x;
anatofuz
parents:
diff changeset
38 }
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 // rdar://9865712
anatofuz
parents:
diff changeset
41 void t6 (void *f, int g) {
anatofuz
parents:
diff changeset
42 // CHECK: t6
anatofuz
parents:
diff changeset
43 // CHECK: call void asm "str $1, $0", "=*Q,r"
anatofuz
parents:
diff changeset
44 asm("str %1, %0" : "=Q"(f) : "r"(g));
anatofuz
parents:
diff changeset
45 }