mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 23:31:37 +00:00
Add support for the 'Q' constraint.
Fixes rdar://9866494 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136523 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b4f4cbd199
commit
ef7f1e71f7
@ -7596,6 +7596,9 @@ ARMTargetLowering::getConstraintType(const std::string &Constraint) const {
|
||||
case 'x': return C_RegisterClass;
|
||||
case 't': return C_RegisterClass;
|
||||
case 'j': return C_Other; // Constant for movw.
|
||||
// An address with a single base register. Due to the way we
|
||||
// currently handle addresses it is the same as an 'r' memory constraint.
|
||||
case 'Q': return C_Memory;
|
||||
}
|
||||
} else if (Constraint.size() == 2) {
|
||||
switch (Constraint[0]) {
|
||||
|
@ -98,3 +98,15 @@ entry:
|
||||
%0 = tail call i32 asm "movw $0, $1", "=r,j"(i32 27182) nounwind
|
||||
ret i32 %0
|
||||
}
|
||||
|
||||
; Radar 9866494
|
||||
|
||||
define void @t10(i8* %f, i32 %g) nounwind {
|
||||
entry:
|
||||
; CHECK: t10
|
||||
; CHECK: str r1, [r0]
|
||||
%f.addr = alloca i8*, align 4
|
||||
store i8* %f, i8** %f.addr, align 4
|
||||
call void asm "str $1, $0", "=*Q,r"(i8** %f.addr, i32 %g) nounwind
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user