mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
c3b7f3ba61
We don't really need any special handling of "offsettable" memory addresses, but since some existing code uses inline asm statements with the "o" constraint, add support for this constraint for compatibility purposes. llvm-svn: 317807
23 lines
542 B
LLVM
23 lines
542 B
LLVM
; Test the "m" asm constraint, which is equivalent to "T".
|
|
; Likewise for the "o" asm constraint.
|
|
;
|
|
; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s
|
|
|
|
define void @f1(i64 %base) {
|
|
; CHECK-LABEL: f1:
|
|
; CHECK: blah 0(%r2)
|
|
; CHECK: br %r14
|
|
%addr = inttoptr i64 %base to i64 *
|
|
call void asm "blah $0", "=*m" (i64 *%addr)
|
|
ret void
|
|
}
|
|
|
|
define void @f2(i64 %base) {
|
|
; CHECK-LABEL: f2:
|
|
; CHECK: blah 0(%r2)
|
|
; CHECK: br %r14
|
|
%addr = inttoptr i64 %base to i64 *
|
|
call void asm "blah $0", "=*o" (i64 *%addr)
|
|
ret void
|
|
}
|