mirror of
https://github.com/intel/llvm.git
synced 2026-01-23 16:06:39 +08:00
[Hexagon] Add inline-asm constraint 'a' for modifier register class
For example
asm ("memw(%0++%1) = %2" : : "r"(addr),"a"(mod),"r"(val) : "memory")
llvm-svn: 308763
This commit is contained in:
@@ -6887,6 +6887,9 @@ public:
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 'a': // Modifier register m0-m1.
|
||||
Info.setAllowsRegister();
|
||||
return true;
|
||||
case 's':
|
||||
// Relocatable constant.
|
||||
return true;
|
||||
|
||||
@@ -15,3 +15,9 @@ void foo(v64 v0, v64 v1, v64 *p) {
|
||||
asm ("%0 = memw(##%1)" : "=r"(r) : "s"(&g));
|
||||
// CHECK: call i32 asm "$0 = memw(##$1)", "=r,s"(i32* @g)
|
||||
}
|
||||
|
||||
void fred(unsigned *p, unsigned m, unsigned v) {
|
||||
asm ("memw(%0++%1) = %2" : : "r"(p),"a"(m),"r"(v) : "memory");
|
||||
// CHECK: call void asm sideeffect "memw($0++$1) = $2", "r,a,r,~{memory}"(i32* %0, i32 %1, i32 %2)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user