// RUN: %clang_cc1 -triple m68k -emit-llvm -O2 %s -o - | FileCheck %s /// Check GCC register names and alias can be used in register variable definition. // CHECK-LABEL: @test_d0 // CHECK: call void asm sideeffect "", "{d0}"(i32 undef) void test_d0() { register int a asm ("d0"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d1 // CHECK: call void asm sideeffect "", "{d1}"(i32 undef) void test_d1() { register int a asm ("d1"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d2 // CHECK: call void asm sideeffect "", "{d2}"(i32 undef) void test_d2() { register int a asm ("d2"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d3 // CHECK: call void asm sideeffect "", "{d3}"(i32 undef) void test_d3() { register int a asm ("d3"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d4 // CHECK: call void asm sideeffect "", "{d4}"(i32 undef) void test_d4() { register int a asm ("d4"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d5 // CHECK: call void asm sideeffect "", "{d5}"(i32 undef) void test_d5() { register int a asm ("d5"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d6 // CHECK: call void asm sideeffect "", "{d6}"(i32 undef) void test_d6() { register int a asm ("d6"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_d7 // CHECK: call void asm sideeffect "", "{d7}"(i32 undef) void test_d7() { register int a asm ("d7"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a0 // CHECK: call void asm sideeffect "", "{a0}"(i32 undef) void test_a0() { register int a asm ("a0"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a1 // CHECK: call void asm sideeffect "", "{a1}"(i32 undef) void test_a1() { register int a asm ("a1"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a2 // CHECK: call void asm sideeffect "", "{a2}"(i32 undef) void test_a2() { register int a asm ("a2"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a3 // CHECK: call void asm sideeffect "", "{a3}"(i32 undef) void test_a3() { register int a asm ("a3"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a4 // CHECK: call void asm sideeffect "", "{a4}"(i32 undef) void test_a4() { register int a asm ("a4"); asm ("" :: "r" (a)); } // CHECK-LABEL: @test_a5 // CHECK: call void asm sideeffect "", "{a5}"(i32 undef) void test_a5() { register int a asm ("a5"); register int b asm ("bp"); asm ("" :: "r" (a)); asm ("" :: "r" (b)); } // CHECK-LABEL: @test_a6 // CHECK: call void asm sideeffect "", "{a6}"(i32 undef) void test_a6() { register int a asm ("a6"); register int b asm ("fp"); asm ("" :: "r" (a)); asm ("" :: "r" (b)); } // CHECK-LABEL: @test_sp // CHECK: call void asm sideeffect "", "{sp}"(i32 undef) void test_sp() { register int a asm ("sp"); register int b asm ("usp"); register int c asm ("ssp"); register int d asm ("isp"); register int e asm ("a7"); asm ("" :: "r" (a)); asm ("" :: "r" (b)); asm ("" :: "r" (c)); asm ("" :: "r" (d)); asm ("" :: "r" (e)); } // CHECK-LABEL: @test_pc // CHECK: call void asm sideeffect "", "{pc}"(i32 undef) void test_pc() { register int a asm ("pc"); asm ("" :: "r" (a)); }