ARM assembly, allow 'asl' as a synonym for 'lsl' in shifted-register operands.

For 'gas' compatibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146106 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach 2011-12-07 23:40:58 +00:00
parent 08a7d92da6
commit af4edea67b
2 changed files with 5 additions and 1 deletions

View File

@ -2140,6 +2140,7 @@ int ARMAsmParser::tryParseShiftRegister(
std::string lowerCase = Tok.getString().lower(); std::string lowerCase = Tok.getString().lower();
ARM_AM::ShiftOpc ShiftTy = StringSwitch<ARM_AM::ShiftOpc>(lowerCase) ARM_AM::ShiftOpc ShiftTy = StringSwitch<ARM_AM::ShiftOpc>(lowerCase)
.Case("asl", ARM_AM::lsl)
.Case("lsl", ARM_AM::lsl) .Case("lsl", ARM_AM::lsl)
.Case("lsr", ARM_AM::lsr) .Case("lsr", ARM_AM::lsr)
.Case("asr", ARM_AM::asr) .Case("asr", ARM_AM::asr)
@ -3901,7 +3902,8 @@ bool ARMAsmParser::parseMemRegOffsetShift(ARM_AM::ShiftOpc &St,
if (Tok.isNot(AsmToken::Identifier)) if (Tok.isNot(AsmToken::Identifier))
return true; return true;
StringRef ShiftName = Tok.getString(); StringRef ShiftName = Tok.getString();
if (ShiftName == "lsl" || ShiftName == "LSL") if (ShiftName == "lsl" || ShiftName == "LSL" ||
ShiftName == "asl" || ShiftName == "ASL")
St = ARM_AM::lsl; St = ARM_AM::lsl;
else if (ShiftName == "lsr" || ShiftName == "LSR") else if (ShiftName == "lsr" || ShiftName == "LSR")
St = ARM_AM::lsr; St = ARM_AM::lsr;

View File

@ -153,6 +153,7 @@ Lforward:
add r4, r5, r6, asr #5 add r4, r5, r6, asr #5
add r4, r5, r6, ror #5 add r4, r5, r6, ror #5
add r6, r7, r8, lsl r9 add r6, r7, r8, lsl r9
add r4, r4, r3, asl r9
add r6, r7, r8, lsr r9 add r6, r7, r8, lsr r9
add r6, r7, r8, asr r9 add r6, r7, r8, asr r9
add r6, r7, r8, ror r9 add r6, r7, r8, ror r9
@ -180,6 +181,7 @@ Lforward:
@ CHECK: add r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x85,0xe0] @ CHECK: add r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x85,0xe0]
@ CHECK: add r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x85,0xe0] @ CHECK: add r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x85,0xe0]
@ CHECK: add r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x87,0xe0] @ CHECK: add r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x87,0xe0]
@ CHECK: add r4, r4, r3, lsl r9 @ encoding: [0x13,0x49,0x84,0xe0]
@ CHECK: add r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x87,0xe0] @ CHECK: add r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x87,0xe0]
@ CHECK: add r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x87,0xe0] @ CHECK: add r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x87,0xe0]
@ CHECK: add r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0xe0] @ CHECK: add r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0xe0]