case MIToken::kw_undef:
Flags |= RegState::Undef;
break;
+ case MIToken::kw_internal:
+ Flags |= RegState::InternalRead;
+ break;
case MIToken::kw_early_clobber:
Flags |= RegState::EarlyClobber;
break;
case MIToken::kw_debug_use:
Flags |= RegState::Debug;
break;
- // TODO: parse the other register flags.
default:
llvm_unreachable("The current token should be a register flag");
}
Dest = MachineOperand::CreateReg(
Reg, Flags & RegState::Define, Flags & RegState::Implicit,
Flags & RegState::Kill, Flags & RegState::Dead, Flags & RegState::Undef,
- Flags & RegState::EarlyClobber, SubReg, Flags & RegState::Debug);
+ Flags & RegState::EarlyClobber, SubReg, Flags & RegState::Debug,
+ Flags & RegState::InternalRead);
return false;
}
case MIToken::kw_dead:
case MIToken::kw_killed:
case MIToken::kw_undef:
+ case MIToken::kw_internal:
case MIToken::kw_early_clobber:
case MIToken::kw_debug_use:
case MIToken::underscore:
# RUN: llc -mtriple thumbv7-apple-ios -start-after block-placement -stop-after block-placement -o /dev/null %s | FileCheck %s
# This test ensures that the MIR parser parses the bundled machine instructions
-# correctly.
+# and 'internal' register flags correctly.
--- |
; CHECK-NEXT: t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
; CHECK-NEXT: BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
; CHECK-NEXT: t2IT 12, 8, implicit-def %itstate
- ; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, _
+ ; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, _, implicit internal killed %itstate
; CHECK-NEXT: }
; CHECK-NEXT: %r0 = tMOVr killed %r1, 14, _
; CHECK-NEXT: tBX_RET 14, _, implicit killed %r0
t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
t2IT 12, 8, implicit-def %itstate
- %r1 = t2MOVi 1, 12, killed %cpsr, _
+ %r1 = t2MOVi 1, 12, killed %cpsr, _, implicit internal killed %itstate
}
%r0 = tMOVr killed %r1, 14, _
tBX_RET 14, _, implicit killed %r0
; CHECK-NEXT: t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
; CHECK-NEXT: BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
; CHECK-NEXT: t2IT 12, 8, implicit-def %itstate
- ; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, _
+ ; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, _, implicit internal killed %itstate
; CHECK-NEXT: }
; CHECK-NEXT: %r0 = tMOVr killed %r1, 14, _
; CHECK-NEXT: tBX_RET 14, _, implicit killed %r0
%r1 = t2MOVi 0, 14, _, _
t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr { t2IT 12, 8, implicit-def %itstate
- %r1 = t2MOVi 1, 12, killed %cpsr, _
+ %r1 = t2MOVi 1, 12, killed %cpsr, _, internal implicit killed %itstate
} %r0 = tMOVr killed %r1, 14, _
tBX_RET 14, _, implicit killed %r0
...