brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 64a7ce0 Raw
47 lines · c
1static void inline_assembly_template_regardless_of_target_machine() {2    int tmp;3    asm volatile (4        "nop\n"5        "a_value %w[v]\n"6        "o_value %w[o]"7        : [v] "=&r" (tmp)8        : [o] "r" (tmp)9        : "cc", "memory"10    );11}12 13// RUN: c-index-test -test-inline-assembly %s 2>&1 | FileCheck %s14// CHECK: ===ASM TEMPLATE===15// CHECK: nop16// CHECK: a_value ${0:w}17// CHECK: o_value ${1:w}18// CHECK: ===ASM TEMPLATE END===19// CHECK: volatile: true20// CHECK: Output #0 Constraint (=&r): DeclRefExpr=tmp:2:921// CHECK: Input #0 Constraint (r): UnexposedExpr=tmp:2:922// CHECK: Clobber #0: cc23// CHECK: Clobber #1: memory24// CHECK: ===ASM END===25 26static void inline_assembly_valid_x86_example() {27    int tmp;28    asm (29        "nop\n"30        "mov %w[o], %w[v]"31        : [v] "=&r" (tmp)32        : [o] "r" (tmp)33        : "cc", "memory"34    );35}36 37// CHECK: ===ASM TEMPLATE===38// CHECK: nop39// CHECK: mov ${1:w}, ${0:w}40// CHECK: ===ASM TEMPLATE END===41// CHECK: volatile: false42// CHECK: Output #0 Constraint (=&r): DeclRefExpr=tmp:27:943// CHECK: Input #0 Constraint (r): UnexposedExpr=tmp:27:944// CHECK: Clobber #0: cc45// CHECK: Clobber #1: memory46// CHECK: ===ASM END===47