File: 2010-05-18-asmsched.c

package info (click to toggle)
llvm-2.9 2.9%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 69,236 kB
  • sloc: cpp: 439,289; ansic: 16,211; asm: 13,295; sh: 12,912; python: 4,459; ml: 4,274; perl: 2,093; makefile: 1,808; pascal: 1,481; exp: 427; objc: 334; xml: 283; ada: 235; lisp: 187; csh: 117; f90: 36
file content (17 lines) | stat: -rw-r--r-- 509 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// RUN: %llvmgcc %s -S -O3 -o - | llc -march=x86-64 -mtriple=x86_64-apple-darwin | FileCheck %s
// r9 used to be clobbered before its value was moved to r10.  7993104.

void foo(int x, int y) {
// CHECK: bar
// CHECK: movq  %r9, %r10
// CHECK: movq  %rdi, %r9
// CHECK: bar
  register int lr9 asm("r9") = x;
  register int lr10 asm("r10") = y;
  int foo;
  asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10));
  foo = lr9;
  lr9 = x;
  lr10 = foo;
  asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10));
}