//
//===----------------------------------------------------------------------===//
#define DEBUG_TYPE "packets"
+#include "Hexagon.h"
+#include "HexagonMachineFunctionInfo.h"
+#include "HexagonRegisterInfo.h"
+#include "HexagonSubtarget.h"
+#include "HexagonTargetMachine.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/DFAPacketizer.h"
-#include "llvm/CodeGen/Passes.h"
+#include "llvm/CodeGen/LatencyPriorityQueue.h"
#include "llvm/CodeGen/MachineDominators.h"
+#include "llvm/CodeGen/MachineFrameInfo.h"
+#include "llvm/CodeGen/MachineFunctionAnalysis.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
+#include "llvm/CodeGen/MachineRegisterInfo.h"
+#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/ScheduleDAG.h"
#include "llvm/CodeGen/ScheduleDAGInstrs.h"
-#include "llvm/CodeGen/LatencyPriorityQueue.h"
-#include "llvm/CodeGen/SchedulerRegistry.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/MachineFunctionAnalysis.h"
#include "llvm/CodeGen/ScheduleHazardRecognizer.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/MathExtras.h"
+#include "llvm/CodeGen/SchedulerRegistry.h"
#include "llvm/MC/MCInstrItineraries.h"
-#include "llvm/Support/Compiler.h"
#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
-#include "Hexagon.h"
-#include "HexagonTargetMachine.h"
-#include "HexagonRegisterInfo.h"
-#include "HexagonSubtarget.h"
-#include "HexagonMachineFunctionInfo.h"
-
+#include "llvm/Support/MathExtras.h"
+#include "llvm/Target/TargetInstrInfo.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetRegisterInfo.h"
#include <map>
using namespace llvm;
// reservation fail.
void HexagonPacketizerList::reserveResourcesForConstExt(MachineInstr* MI) {
const HexagonInstrInfo *QII = (const HexagonInstrInfo *) TII;
- MachineInstr *PseudoMI = MI->getParent()->getParent()->CreateMachineInstr(
- QII->get(Hexagon::IMMEXT), MI->getDebugLoc());
+ MachineFunction *MF = MI->getParent()->getParent();
+ MachineInstr *PseudoMI = MF->CreateMachineInstr(QII->get(Hexagon::IMMEXT_i),
+ MI->getDebugLoc());
if (ResourceTracker->canReserveResources(PseudoMI)) {
ResourceTracker->reserveResources(PseudoMI);
bool HexagonPacketizerList::canReserveResourcesForConstExt(MachineInstr *MI) {
const HexagonInstrInfo *QII = (const HexagonInstrInfo *) TII;
- assert((QII->isExtended(MI) || QII->isConstExtended(MI)) &&
+ assert(QII->isExtended(MI) &&
"Should only be called for constant extended instructions");
MachineFunction *MF = MI->getParent()->getParent();
- MachineInstr *PseudoMI = MF->CreateMachineInstr(QII->get(Hexagon::IMMEXT),
+ MachineInstr *PseudoMI = MF->CreateMachineInstr(QII->get(Hexagon::IMMEXT_i),
MI->getDebugLoc());
bool CanReserve = ResourceTracker->canReserveResources(PseudoMI);
MF->DeleteMachineInstr(PseudoMI);
// true, otherwise, return false.
bool HexagonPacketizerList::tryAllocateResourcesForConstExt(MachineInstr* MI) {
const HexagonInstrInfo *QII = (const HexagonInstrInfo *) TII;
- MachineInstr *PseudoMI = MI->getParent()->getParent()->CreateMachineInstr(
- QII->get(Hexagon::IMMEXT), MI->getDebugLoc());
+ MachineFunction *MF = MI->getParent()->getParent();
+ MachineInstr *PseudoMI = MF->CreateMachineInstr(QII->get(Hexagon::IMMEXT_i),
+ MI->getDebugLoc());
if (ResourceTracker->canReserveResources(PseudoMI)) {
ResourceTracker->reserveResources(PseudoMI);
case Hexagon::STrib_indexed:
case Hexagon::STrib_indexed_shl_V4:
case Hexagon::STrib_shl_V4:
- case Hexagon::STrib_GP_V4:
case Hexagon::STb_GP_V4:
case Hexagon::POST_STbri:
case Hexagon::STrib_cPt:
case Hexagon::POST_STbri_cdnPt_V4:
case Hexagon::POST_STbri_cNotPt:
case Hexagon::POST_STbri_cdnNotPt_V4:
- case Hexagon::STrib_abs_V4:
- case Hexagon::STrib_abs_cPt_V4:
- case Hexagon::STrib_abs_cdnPt_V4:
- case Hexagon::STrib_abs_cNotPt_V4:
- case Hexagon::STrib_abs_cdnNotPt_V4:
- case Hexagon::STrib_imm_abs_V4:
- case Hexagon::STrib_imm_abs_cPt_V4:
- case Hexagon::STrib_imm_abs_cdnPt_V4:
- case Hexagon::STrib_imm_abs_cNotPt_V4:
- case Hexagon::STrib_imm_abs_cdnNotPt_V4:
case Hexagon::STb_GP_cPt_V4:
case Hexagon::STb_GP_cNotPt_V4:
case Hexagon::STb_GP_cdnPt_V4:
case Hexagon::STb_GP_cdnNotPt_V4:
- case Hexagon::STrib_GP_cPt_V4:
- case Hexagon::STrib_GP_cNotPt_V4:
- case Hexagon::STrib_GP_cdnPt_V4:
- case Hexagon::STrib_GP_cdnNotPt_V4:
// store halfword
case Hexagon::STrih:
case Hexagon::STrih_indexed:
case Hexagon::STrih_indexed_shl_V4:
case Hexagon::STrih_shl_V4:
- case Hexagon::STrih_GP_V4:
case Hexagon::STh_GP_V4:
case Hexagon::POST_SThri:
case Hexagon::STrih_cPt:
case Hexagon::POST_SThri_cdnPt_V4:
case Hexagon::POST_SThri_cNotPt:
case Hexagon::POST_SThri_cdnNotPt_V4:
- case Hexagon::STrih_abs_V4:
- case Hexagon::STrih_abs_cPt_V4:
- case Hexagon::STrih_abs_cdnPt_V4:
- case Hexagon::STrih_abs_cNotPt_V4:
- case Hexagon::STrih_abs_cdnNotPt_V4:
- case Hexagon::STrih_imm_abs_V4:
- case Hexagon::STrih_imm_abs_cPt_V4:
- case Hexagon::STrih_imm_abs_cdnPt_V4:
- case Hexagon::STrih_imm_abs_cNotPt_V4:
- case Hexagon::STrih_imm_abs_cdnNotPt_V4:
case Hexagon::STh_GP_cPt_V4:
case Hexagon::STh_GP_cNotPt_V4:
case Hexagon::STh_GP_cdnPt_V4:
case Hexagon::STh_GP_cdnNotPt_V4:
- case Hexagon::STrih_GP_cPt_V4:
- case Hexagon::STrih_GP_cNotPt_V4:
- case Hexagon::STrih_GP_cdnPt_V4:
- case Hexagon::STrih_GP_cdnNotPt_V4:
// store word
case Hexagon::STriw:
case Hexagon::STriw_indexed:
case Hexagon::STriw_indexed_shl_V4:
case Hexagon::STriw_shl_V4:
- case Hexagon::STriw_GP_V4:
case Hexagon::STw_GP_V4:
case Hexagon::POST_STwri:
case Hexagon::STriw_cPt:
case Hexagon::POST_STwri_cdnPt_V4:
case Hexagon::POST_STwri_cNotPt:
case Hexagon::POST_STwri_cdnNotPt_V4:
- case Hexagon::STriw_abs_V4:
- case Hexagon::STriw_abs_cPt_V4:
- case Hexagon::STriw_abs_cdnPt_V4:
- case Hexagon::STriw_abs_cNotPt_V4:
- case Hexagon::STriw_abs_cdnNotPt_V4:
- case Hexagon::STriw_imm_abs_V4:
- case Hexagon::STriw_imm_abs_cPt_V4:
- case Hexagon::STriw_imm_abs_cdnPt_V4:
- case Hexagon::STriw_imm_abs_cNotPt_V4:
- case Hexagon::STriw_imm_abs_cdnNotPt_V4:
case Hexagon::STw_GP_cPt_V4:
case Hexagon::STw_GP_cNotPt_V4:
case Hexagon::STw_GP_cdnPt_V4:
case Hexagon::STw_GP_cdnNotPt_V4:
- case Hexagon::STriw_GP_cPt_V4:
- case Hexagon::STriw_GP_cNotPt_V4:
- case Hexagon::STriw_GP_cdnPt_V4:
- case Hexagon::STriw_GP_cdnNotPt_V4:
return QRI->Subtarget.hasV4TOps();
}
return false;
case Hexagon::STrib_shl_V4:
return Hexagon::STrib_shl_nv_V4;
- case Hexagon::STrib_GP_V4:
- return Hexagon::STrib_GP_nv_V4;
-
case Hexagon::STb_GP_V4:
return Hexagon::STb_GP_nv_V4;
case Hexagon::STb_GP_cdnNotPt_V4:
return Hexagon::STb_GP_cdnNotPt_nv_V4;
- case Hexagon::STrib_GP_cPt_V4:
- return Hexagon::STrib_GP_cPt_nv_V4;
-
- case Hexagon::STrib_GP_cNotPt_V4:
- return Hexagon::STrib_GP_cNotPt_nv_V4;
-
- case Hexagon::STrib_GP_cdnPt_V4:
- return Hexagon::STrib_GP_cdnPt_nv_V4;
-
- case Hexagon::STrib_GP_cdnNotPt_V4:
- return Hexagon::STrib_GP_cdnNotPt_nv_V4;
-
// store new value halfword
case Hexagon::STrih:
return Hexagon::STrih_nv_V4;
case Hexagon::STrih_shl_V4:
return Hexagon::STrih_shl_nv_V4;
- case Hexagon::STrih_GP_V4:
- return Hexagon::STrih_GP_nv_V4;
-
case Hexagon::STh_GP_V4:
return Hexagon::STh_GP_nv_V4;
case Hexagon::STh_GP_cdnNotPt_V4:
return Hexagon::STh_GP_cdnNotPt_nv_V4;
- case Hexagon::STrih_GP_cPt_V4:
- return Hexagon::STrih_GP_cPt_nv_V4;
-
- case Hexagon::STrih_GP_cNotPt_V4:
- return Hexagon::STrih_GP_cNotPt_nv_V4;
-
- case Hexagon::STrih_GP_cdnPt_V4:
- return Hexagon::STrih_GP_cdnPt_nv_V4;
-
- case Hexagon::STrih_GP_cdnNotPt_V4:
- return Hexagon::STrih_GP_cdnNotPt_nv_V4;
-
// store new value word
case Hexagon::STriw:
return Hexagon::STriw_nv_V4;
case Hexagon::STriw_shl_V4:
return Hexagon::STriw_shl_nv_V4;
- case Hexagon::STriw_GP_V4:
- return Hexagon::STriw_GP_nv_V4;
-
case Hexagon::STw_GP_V4:
return Hexagon::STw_GP_nv_V4;
case Hexagon::POST_STwri_cdnNotPt_V4:
return Hexagon::POST_STwri_cdnNotPt_nv_V4;
-// Absolute addressing mode -- global address
- case Hexagon::STrib_abs_V4:
- return Hexagon::STrib_abs_nv_V4;
-
- case Hexagon::STrib_abs_cPt_V4:
- return Hexagon::STrib_abs_cPt_nv_V4;
-
- case Hexagon::STrib_abs_cdnPt_V4:
- return Hexagon::STrib_abs_cdnPt_nv_V4;
-
- case Hexagon::STrib_abs_cNotPt_V4:
- return Hexagon::STrib_abs_cNotPt_nv_V4;
-
- case Hexagon::STrib_abs_cdnNotPt_V4:
- return Hexagon::STrib_abs_cdnNotPt_nv_V4;
-
- case Hexagon::STrih_abs_V4:
- return Hexagon::STrih_abs_nv_V4;
-
- case Hexagon::STrih_abs_cPt_V4:
- return Hexagon::STrih_abs_cPt_nv_V4;
-
- case Hexagon::STrih_abs_cdnPt_V4:
- return Hexagon::STrih_abs_cdnPt_nv_V4;
-
- case Hexagon::STrih_abs_cNotPt_V4:
- return Hexagon::STrih_abs_cNotPt_nv_V4;
-
- case Hexagon::STrih_abs_cdnNotPt_V4:
- return Hexagon::STrih_abs_cdnNotPt_nv_V4;
-
- case Hexagon::STriw_abs_V4:
- return Hexagon::STriw_abs_nv_V4;
-
- case Hexagon::STriw_abs_cPt_V4:
- return Hexagon::STriw_abs_cPt_nv_V4;
-
- case Hexagon::STriw_abs_cdnPt_V4:
- return Hexagon::STriw_abs_cdnPt_nv_V4;
-
- case Hexagon::STriw_abs_cNotPt_V4:
- return Hexagon::STriw_abs_cNotPt_nv_V4;
-
- case Hexagon::STriw_abs_cdnNotPt_V4:
- return Hexagon::STriw_abs_cdnNotPt_nv_V4;
-
-// Absolute addressing mode -- immediate value
- case Hexagon::STrib_imm_abs_V4:
- return Hexagon::STrib_imm_abs_nv_V4;
-
- case Hexagon::STrib_imm_abs_cPt_V4:
- return Hexagon::STrib_imm_abs_cPt_nv_V4;
-
- case Hexagon::STrib_imm_abs_cdnPt_V4:
- return Hexagon::STrib_imm_abs_cdnPt_nv_V4;
-
- case Hexagon::STrib_imm_abs_cNotPt_V4:
- return Hexagon::STrib_imm_abs_cNotPt_nv_V4;
-
- case Hexagon::STrib_imm_abs_cdnNotPt_V4:
- return Hexagon::STrib_imm_abs_cdnNotPt_nv_V4;
-
- case Hexagon::STrih_imm_abs_V4:
- return Hexagon::STrih_imm_abs_nv_V4;
-
- case Hexagon::STrih_imm_abs_cPt_V4:
- return Hexagon::STrih_imm_abs_cPt_nv_V4;
-
- case Hexagon::STrih_imm_abs_cdnPt_V4:
- return Hexagon::STrih_imm_abs_cdnPt_nv_V4;
-
- case Hexagon::STrih_imm_abs_cNotPt_V4:
- return Hexagon::STrih_imm_abs_cNotPt_nv_V4;
-
- case Hexagon::STrih_imm_abs_cdnNotPt_V4:
- return Hexagon::STrih_imm_abs_cdnNotPt_nv_V4;
-
- case Hexagon::STriw_imm_abs_V4:
- return Hexagon::STriw_imm_abs_nv_V4;
-
- case Hexagon::STriw_imm_abs_cPt_V4:
- return Hexagon::STriw_imm_abs_cPt_nv_V4;
-
- case Hexagon::STriw_imm_abs_cdnPt_V4:
- return Hexagon::STriw_imm_abs_cdnPt_nv_V4;
-
- case Hexagon::STriw_imm_abs_cNotPt_V4:
- return Hexagon::STriw_imm_abs_cNotPt_nv_V4;
-
- case Hexagon::STriw_imm_abs_cdnNotPt_V4:
- return Hexagon::STriw_imm_abs_cdnNotPt_nv_V4;
-
case Hexagon::STw_GP_cPt_V4:
return Hexagon::STw_GP_cPt_nv_V4;
case Hexagon::STw_GP_cdnNotPt_V4:
return Hexagon::STw_GP_cdnNotPt_nv_V4;
- case Hexagon::STriw_GP_cPt_V4:
- return Hexagon::STriw_GP_cPt_nv_V4;
-
- case Hexagon::STriw_GP_cNotPt_V4:
- return Hexagon::STriw_GP_cNotPt_nv_V4;
-
- case Hexagon::STriw_GP_cdnPt_V4:
- return Hexagon::STriw_GP_cdnPt_nv_V4;
-
- case Hexagon::STriw_GP_cdnNotPt_V4:
- return Hexagon::STriw_GP_cdnNotPt_nv_V4;
}
}
case Hexagon::STb_GP_cNotPt_V4 :
return Hexagon::STb_GP_cdnNotPt_V4;
- case Hexagon::STrib_GP_cPt_V4 :
- return Hexagon::STrib_GP_cdnPt_V4;
-
- case Hexagon::STrib_GP_cNotPt_V4 :
- return Hexagon::STrib_GP_cdnNotPt_V4;
-
// Store doubleword conditionally
case Hexagon::STrid_cPt :
return Hexagon::STrid_cdnPt_V4;
case Hexagon::STd_GP_cNotPt_V4 :
return Hexagon::STd_GP_cdnNotPt_V4;
- case Hexagon::STrid_GP_cPt_V4 :
- return Hexagon::STrid_GP_cdnPt_V4;
-
- case Hexagon::STrid_GP_cNotPt_V4 :
- return Hexagon::STrid_GP_cdnNotPt_V4;
-
// Store halfword conditionally
case Hexagon::STrih_cPt :
return Hexagon::STrih_cdnPt_V4;
case Hexagon::STh_GP_cNotPt_V4 :
return Hexagon::STh_GP_cdnNotPt_V4;
- case Hexagon::STrih_GP_cPt_V4 :
- return Hexagon::STrih_GP_cdnPt_V4;
-
- case Hexagon::STrih_GP_cNotPt_V4 :
- return Hexagon::STrih_GP_cdnNotPt_V4;
-
// Store word conditionally
case Hexagon::STriw_cPt :
return Hexagon::STriw_cdnPt_V4;
case Hexagon::STw_GP_cNotPt_V4 :
return Hexagon::STw_GP_cdnNotPt_V4;
- case Hexagon::STriw_GP_cPt_V4 :
- return Hexagon::STriw_GP_cdnPt_V4;
-
- case Hexagon::STriw_GP_cNotPt_V4 :
- return Hexagon::STriw_GP_cdnNotPt_V4;
-
// Condtional Jumps
case Hexagon::JMP_c:
return Hexagon::JMP_cdnPt;
// V4 indexed+scaled load
- case Hexagon::LDrid_indexed_cPt_V4 :
- return Hexagon::LDrid_indexed_cdnPt_V4;
-
- case Hexagon::LDrid_indexed_cNotPt_V4 :
- return Hexagon::LDrid_indexed_cdnNotPt_V4;
-
case Hexagon::LDrid_indexed_shl_cPt_V4 :
return Hexagon::LDrid_indexed_shl_cdnPt_V4;
case Hexagon::LDrid_indexed_shl_cNotPt_V4 :
return Hexagon::LDrid_indexed_shl_cdnNotPt_V4;
- case Hexagon::LDrib_indexed_cPt_V4 :
- return Hexagon::LDrib_indexed_cdnPt_V4;
-
- case Hexagon::LDrib_indexed_cNotPt_V4 :
- return Hexagon::LDrib_indexed_cdnNotPt_V4;
-
case Hexagon::LDrib_indexed_shl_cPt_V4 :
return Hexagon::LDrib_indexed_shl_cdnPt_V4;
case Hexagon::LDrib_indexed_shl_cNotPt_V4 :
return Hexagon::LDrib_indexed_shl_cdnNotPt_V4;
- case Hexagon::LDriub_indexed_cPt_V4 :
- return Hexagon::LDriub_indexed_cdnPt_V4;
-
- case Hexagon::LDriub_indexed_cNotPt_V4 :
- return Hexagon::LDriub_indexed_cdnNotPt_V4;
-
case Hexagon::LDriub_indexed_shl_cPt_V4 :
return Hexagon::LDriub_indexed_shl_cdnPt_V4;
case Hexagon::LDriub_indexed_shl_cNotPt_V4 :
return Hexagon::LDriub_indexed_shl_cdnNotPt_V4;
- case Hexagon::LDrih_indexed_cPt_V4 :
- return Hexagon::LDrih_indexed_cdnPt_V4;
-
- case Hexagon::LDrih_indexed_cNotPt_V4 :
- return Hexagon::LDrih_indexed_cdnNotPt_V4;
-
case Hexagon::LDrih_indexed_shl_cPt_V4 :
return Hexagon::LDrih_indexed_shl_cdnPt_V4;
case Hexagon::LDrih_indexed_shl_cNotPt_V4 :
return Hexagon::LDrih_indexed_shl_cdnNotPt_V4;
- case Hexagon::LDriuh_indexed_cPt_V4 :
- return Hexagon::LDriuh_indexed_cdnPt_V4;
-
- case Hexagon::LDriuh_indexed_cNotPt_V4 :
- return Hexagon::LDriuh_indexed_cdnNotPt_V4;
-
case Hexagon::LDriuh_indexed_shl_cPt_V4 :
return Hexagon::LDriuh_indexed_shl_cdnPt_V4;
case Hexagon::LDriuh_indexed_shl_cNotPt_V4 :
return Hexagon::LDriuh_indexed_shl_cdnNotPt_V4;
- case Hexagon::LDriw_indexed_cPt_V4 :
- return Hexagon::LDriw_indexed_cdnPt_V4;
-
- case Hexagon::LDriw_indexed_cNotPt_V4 :
- return Hexagon::LDriw_indexed_cdnNotPt_V4;
-
case Hexagon::LDriw_indexed_shl_cPt_V4 :
return Hexagon::LDriw_indexed_shl_cdnPt_V4;
case Hexagon::LDw_GP_cNotPt_V4:
return Hexagon::LDw_GP_cdnNotPt_V4;
- case Hexagon::LDrid_GP_cPt_V4:
- return Hexagon::LDrid_GP_cdnPt_V4;
-
- case Hexagon::LDrid_GP_cNotPt_V4:
- return Hexagon::LDrid_GP_cdnNotPt_V4;
-
- case Hexagon::LDrib_GP_cPt_V4:
- return Hexagon::LDrib_GP_cdnPt_V4;
-
- case Hexagon::LDrib_GP_cNotPt_V4:
- return Hexagon::LDrib_GP_cdnNotPt_V4;
-
- case Hexagon::LDriub_GP_cPt_V4:
- return Hexagon::LDriub_GP_cdnPt_V4;
-
- case Hexagon::LDriub_GP_cNotPt_V4:
- return Hexagon::LDriub_GP_cdnNotPt_V4;
-
- case Hexagon::LDrih_GP_cPt_V4:
- return Hexagon::LDrih_GP_cdnPt_V4;
-
- case Hexagon::LDrih_GP_cNotPt_V4:
- return Hexagon::LDrih_GP_cdnNotPt_V4;
-
- case Hexagon::LDriuh_GP_cPt_V4:
- return Hexagon::LDriuh_GP_cdnPt_V4;
-
- case Hexagon::LDriuh_GP_cNotPt_V4:
- return Hexagon::LDriuh_GP_cdnNotPt_V4;
-
- case Hexagon::LDriw_GP_cPt_V4:
- return Hexagon::LDriw_GP_cdnPt_V4;
-
- case Hexagon::LDriw_GP_cNotPt_V4:
- return Hexagon::LDriw_GP_cdnNotPt_V4;
-
// Conditional store new-value byte
case Hexagon::STrib_cPt_nv_V4 :
return Hexagon::STrib_cdnPt_nv_V4;
case Hexagon::STb_GP_cNotPt_nv_V4 :
return Hexagon::STb_GP_cdnNotPt_nv_V4;
- case Hexagon::STrib_GP_cPt_nv_V4 :
- return Hexagon::STrib_GP_cdnPt_nv_V4;
-
- case Hexagon::STrib_GP_cNotPt_nv_V4 :
- return Hexagon::STrib_GP_cdnNotPt_nv_V4;
-
// Conditional store new-value halfword
case Hexagon::STrih_cPt_nv_V4 :
return Hexagon::STrih_cdnPt_nv_V4;
case Hexagon::STh_GP_cNotPt_nv_V4 :
return Hexagon::STh_GP_cdnNotPt_nv_V4;
- case Hexagon::STrih_GP_cPt_nv_V4 :
- return Hexagon::STrih_GP_cdnPt_nv_V4;
-
- case Hexagon::STrih_GP_cNotPt_nv_V4 :
- return Hexagon::STrih_GP_cdnNotPt_nv_V4;
-
// Conditional store new-value word
case Hexagon::STriw_cPt_nv_V4 :
return Hexagon::STriw_cdnPt_nv_V4;
case Hexagon::STw_GP_cNotPt_nv_V4 :
return Hexagon::STw_GP_cdnNotPt_nv_V4;
- case Hexagon::STriw_GP_cPt_nv_V4 :
- return Hexagon::STriw_GP_cdnPt_nv_V4;
-
- case Hexagon::STriw_GP_cNotPt_nv_V4 :
- return Hexagon::STriw_GP_cdnNotPt_nv_V4;
-
// Conditional add
case Hexagon::ADD_ri_cPt :
return Hexagon::ADD_ri_cdnPt;
return Hexagon::ZXTH_cdnPt_V4;
case Hexagon::ZXTH_cNotPt_V4 :
return Hexagon::ZXTH_cdnNotPt_V4;
-
- // Load Absolute Addressing.
- case Hexagon::LDrib_abs_cPt_V4 :
- return Hexagon::LDrib_abs_cdnPt_V4;
- case Hexagon::LDrib_abs_cNotPt_V4 :
- return Hexagon::LDrib_abs_cdnNotPt_V4;
-
- case Hexagon::LDriub_abs_cPt_V4 :
- return Hexagon::LDriub_abs_cdnPt_V4;
- case Hexagon::LDriub_abs_cNotPt_V4 :
- return Hexagon::LDriub_abs_cdnNotPt_V4;
-
- case Hexagon::LDrih_abs_cPt_V4 :
- return Hexagon::LDrih_abs_cdnPt_V4;
- case Hexagon::LDrih_abs_cNotPt_V4 :
- return Hexagon::LDrih_abs_cdnNotPt_V4;
-
- case Hexagon::LDriuh_abs_cPt_V4 :
- return Hexagon::LDriuh_abs_cdnPt_V4;
- case Hexagon::LDriuh_abs_cNotPt_V4 :
- return Hexagon::LDriuh_abs_cdnNotPt_V4;
-
- case Hexagon::LDriw_abs_cPt_V4 :
- return Hexagon::LDriw_abs_cdnPt_V4;
- case Hexagon::LDriw_abs_cNotPt_V4 :
- return Hexagon::LDriw_abs_cdnNotPt_V4;
-
- case Hexagon::LDrid_abs_cPt_V4 :
- return Hexagon::LDrid_abs_cdnPt_V4;
- case Hexagon::LDrid_abs_cNotPt_V4 :
- return Hexagon::LDrid_abs_cdnNotPt_V4;
-
- case Hexagon::LDrib_imm_abs_cPt_V4:
- return Hexagon::LDrib_imm_abs_cdnPt_V4;
- case Hexagon::LDrib_imm_abs_cNotPt_V4:
- return Hexagon::LDrib_imm_abs_cdnNotPt_V4;
-
- case Hexagon::LDriub_imm_abs_cPt_V4:
- return Hexagon::LDriub_imm_abs_cdnPt_V4;
- case Hexagon::LDriub_imm_abs_cNotPt_V4:
- return Hexagon::LDriub_imm_abs_cdnNotPt_V4;
-
- case Hexagon::LDrih_imm_abs_cPt_V4:
- return Hexagon::LDrih_imm_abs_cdnPt_V4;
- case Hexagon::LDrih_imm_abs_cNotPt_V4:
- return Hexagon::LDrih_imm_abs_cdnNotPt_V4;
-
- case Hexagon::LDriuh_imm_abs_cPt_V4:
- return Hexagon::LDriuh_imm_abs_cdnPt_V4;
- case Hexagon::LDriuh_imm_abs_cNotPt_V4:
- return Hexagon::LDriuh_imm_abs_cdnNotPt_V4;
-
- case Hexagon::LDriw_imm_abs_cPt_V4:
- return Hexagon::LDriw_imm_abs_cdnPt_V4;
- case Hexagon::LDriw_imm_abs_cNotPt_V4:
- return Hexagon::LDriw_imm_abs_cdnNotPt_V4;
-
- // Store Absolute Addressing.
- case Hexagon::STrib_abs_cPt_V4 :
- return Hexagon::STrib_abs_cdnPt_V4;
- case Hexagon::STrib_abs_cNotPt_V4 :
- return Hexagon::STrib_abs_cdnNotPt_V4;
-
- case Hexagon::STrih_abs_cPt_V4 :
- return Hexagon::STrih_abs_cdnPt_V4;
- case Hexagon::STrih_abs_cNotPt_V4 :
- return Hexagon::STrih_abs_cdnNotPt_V4;
-
- case Hexagon::STriw_abs_cPt_V4 :
- return Hexagon::STriw_abs_cdnPt_V4;
- case Hexagon::STriw_abs_cNotPt_V4 :
- return Hexagon::STriw_abs_cdnNotPt_V4;
-
- case Hexagon::STrid_abs_cPt_V4 :
- return Hexagon::STrid_abs_cdnPt_V4;
- case Hexagon::STrid_abs_cNotPt_V4 :
- return Hexagon::STrid_abs_cdnNotPt_V4;
-
- case Hexagon::STrib_imm_abs_cPt_V4:
- return Hexagon::STrib_imm_abs_cdnPt_V4;
- case Hexagon::STrib_imm_abs_cNotPt_V4:
- return Hexagon::STrib_imm_abs_cdnNotPt_V4;
-
- case Hexagon::STrih_imm_abs_cPt_V4:
- return Hexagon::STrih_imm_abs_cdnPt_V4;
- case Hexagon::STrih_imm_abs_cNotPt_V4:
- return Hexagon::STrih_imm_abs_cdnNotPt_V4;
-
- case Hexagon::STriw_imm_abs_cPt_V4:
- return Hexagon::STriw_imm_abs_cdnPt_V4;
- case Hexagon::STriw_imm_abs_cNotPt_V4:
- return Hexagon::STriw_imm_abs_cdnNotPt_V4;
-
- case Hexagon::TFRI_cPt_V4:
- return Hexagon::TFRI_cdnPt_V4;
- case Hexagon::TFRI_cNotPt_V4:
- return Hexagon::TFRI_cdnNotPt_V4;
}
}
return false;
}
+
// Promote an instructiont to its .new form.
// At this time, we have already made a call to CanPromoteToDotNew
// and made sure that it can *indeed* be promoted.
// V4 indexed+scaled Load
- case Hexagon::LDrid_indexed_cdnPt_V4 :
- return Hexagon::LDrid_indexed_cPt_V4;
-
- case Hexagon::LDrid_indexed_cdnNotPt_V4 :
- return Hexagon::LDrid_indexed_cNotPt_V4;
-
case Hexagon::LDrid_indexed_shl_cdnPt_V4 :
return Hexagon::LDrid_indexed_shl_cPt_V4;
case Hexagon::LDrid_indexed_shl_cdnNotPt_V4 :
return Hexagon::LDrid_indexed_shl_cNotPt_V4;
- case Hexagon::LDrib_indexed_cdnPt_V4 :
- return Hexagon::LDrib_indexed_cPt_V4;
-
- case Hexagon::LDrib_indexed_cdnNotPt_V4 :
- return Hexagon::LDrib_indexed_cNotPt_V4;
-
case Hexagon::LDrib_indexed_shl_cdnPt_V4 :
return Hexagon::LDrib_indexed_shl_cPt_V4;
case Hexagon::LDrib_indexed_shl_cdnNotPt_V4 :
return Hexagon::LDrib_indexed_shl_cNotPt_V4;
- case Hexagon::LDriub_indexed_cdnPt_V4 :
- return Hexagon::LDriub_indexed_cPt_V4;
-
- case Hexagon::LDriub_indexed_cdnNotPt_V4 :
- return Hexagon::LDriub_indexed_cNotPt_V4;
-
case Hexagon::LDriub_indexed_shl_cdnPt_V4 :
return Hexagon::LDriub_indexed_shl_cPt_V4;
case Hexagon::LDriub_indexed_shl_cdnNotPt_V4 :
return Hexagon::LDriub_indexed_shl_cNotPt_V4;
- case Hexagon::LDrih_indexed_cdnPt_V4 :
- return Hexagon::LDrih_indexed_cPt_V4;
-
- case Hexagon::LDrih_indexed_cdnNotPt_V4 :
- return Hexagon::LDrih_indexed_cNotPt_V4;
-
case Hexagon::LDrih_indexed_shl_cdnPt_V4 :
return Hexagon::LDrih_indexed_shl_cPt_V4;
case Hexagon::LDrih_indexed_shl_cdnNotPt_V4 :
return Hexagon::LDrih_indexed_shl_cNotPt_V4;
- case Hexagon::LDriuh_indexed_cdnPt_V4 :
- return Hexagon::LDriuh_indexed_cPt_V4;
-
- case Hexagon::LDriuh_indexed_cdnNotPt_V4 :
- return Hexagon::LDriuh_indexed_cNotPt_V4;
-
case Hexagon::LDriuh_indexed_shl_cdnPt_V4 :
return Hexagon::LDriuh_indexed_shl_cPt_V4;
case Hexagon::LDriuh_indexed_shl_cdnNotPt_V4 :
return Hexagon::LDriuh_indexed_shl_cNotPt_V4;
- case Hexagon::LDriw_indexed_cdnPt_V4 :
- return Hexagon::LDriw_indexed_cPt_V4;
-
- case Hexagon::LDriw_indexed_cdnNotPt_V4 :
- return Hexagon::LDriw_indexed_cNotPt_V4;
-
case Hexagon::LDriw_indexed_shl_cdnPt_V4 :
return Hexagon::LDriw_indexed_shl_cPt_V4;
case Hexagon::LDw_GP_cdnNotPt_V4:
return Hexagon::LDw_GP_cNotPt_V4;
- case Hexagon::LDrid_GP_cdnPt_V4:
- return Hexagon::LDrid_GP_cPt_V4;
-
- case Hexagon::LDrid_GP_cdnNotPt_V4:
- return Hexagon::LDrid_GP_cNotPt_V4;
-
- case Hexagon::LDrib_GP_cdnPt_V4:
- return Hexagon::LDrib_GP_cPt_V4;
-
- case Hexagon::LDrib_GP_cdnNotPt_V4:
- return Hexagon::LDrib_GP_cNotPt_V4;
-
- case Hexagon::LDriub_GP_cdnPt_V4:
- return Hexagon::LDriub_GP_cPt_V4;
-
- case Hexagon::LDriub_GP_cdnNotPt_V4:
- return Hexagon::LDriub_GP_cNotPt_V4;
-
- case Hexagon::LDrih_GP_cdnPt_V4:
- return Hexagon::LDrih_GP_cPt_V4;
-
- case Hexagon::LDrih_GP_cdnNotPt_V4:
- return Hexagon::LDrih_GP_cNotPt_V4;
-
- case Hexagon::LDriuh_GP_cdnPt_V4:
- return Hexagon::LDriuh_GP_cPt_V4;
-
- case Hexagon::LDriuh_GP_cdnNotPt_V4:
- return Hexagon::LDriuh_GP_cNotPt_V4;
-
- case Hexagon::LDriw_GP_cdnPt_V4:
- return Hexagon::LDriw_GP_cPt_V4;
-
- case Hexagon::LDriw_GP_cdnNotPt_V4:
- return Hexagon::LDriw_GP_cNotPt_V4;
-
// Conditional add
case Hexagon::ADD_ri_cdnPt :
case Hexagon::STb_GP_cNotPt_nv_V4:
return Hexagon::STb_GP_cNotPt_V4;
- case Hexagon::STrib_GP_cdnPt_nv_V4:
- case Hexagon::STrib_GP_cdnPt_V4:
- case Hexagon::STrib_GP_cPt_nv_V4:
- return Hexagon::STrib_GP_cPt_V4;
-
- case Hexagon::STrib_GP_cdnNotPt_nv_V4:
- case Hexagon::STrib_GP_cdnNotPt_V4:
- case Hexagon::STrib_GP_cNotPt_nv_V4:
- return Hexagon::STrib_GP_cNotPt_V4;
-
// Store new-value byte - unconditional
case Hexagon::STrib_nv_V4:
return Hexagon::STrib;
case Hexagon::STrib_shl_nv_V4:
return Hexagon::STrib_shl_V4;
- case Hexagon::STrib_GP_nv_V4:
- return Hexagon::STrib_GP_V4;
-
case Hexagon::STb_GP_nv_V4:
return Hexagon::STb_GP_V4;
case Hexagon::STh_GP_cNotPt_nv_V4:
return Hexagon::STh_GP_cNotPt_V4;
- case Hexagon::STrih_GP_cdnPt_nv_V4:
- case Hexagon::STrih_GP_cdnPt_V4:
- case Hexagon::STrih_GP_cPt_nv_V4:
- return Hexagon::STrih_GP_cPt_V4;
-
- case Hexagon::STrih_GP_cdnNotPt_nv_V4:
- case Hexagon::STrih_GP_cdnNotPt_V4:
- case Hexagon::STrih_GP_cNotPt_nv_V4:
- return Hexagon::STrih_GP_cNotPt_V4;
-
// Store new-value halfword - unconditional
case Hexagon::STrih_nv_V4:
case Hexagon::STrih_shl_nv_V4:
return Hexagon::STrih_shl_V4;
- case Hexagon::STrih_GP_nv_V4:
- return Hexagon::STrih_GP_V4;
-
case Hexagon::STh_GP_nv_V4:
return Hexagon::STh_GP_V4;
case Hexagon::STw_GP_cNotPt_nv_V4:
return Hexagon::STw_GP_cNotPt_V4;
- case Hexagon::STriw_GP_cdnPt_nv_V4:
- case Hexagon::STriw_GP_cdnPt_V4:
- case Hexagon::STriw_GP_cPt_nv_V4:
- return Hexagon::STriw_GP_cPt_V4;
-
- case Hexagon::STriw_GP_cdnNotPt_nv_V4:
- case Hexagon::STriw_GP_cdnNotPt_V4:
- case Hexagon::STriw_GP_cNotPt_nv_V4:
- return Hexagon::STriw_GP_cNotPt_V4;
-
// Store new-value word - unconditional
case Hexagon::STriw_nv_V4:
case Hexagon::STriw_shl_nv_V4:
return Hexagon::STriw_shl_V4;
- case Hexagon::STriw_GP_nv_V4:
- return Hexagon::STriw_GP_V4;
-
case Hexagon::STw_GP_nv_V4:
return Hexagon::STw_GP_V4;
case Hexagon::POST_STdri_cdnNotPt_V4 :
return Hexagon::POST_STdri_cNotPt;
-// Absolute addressing mode - global address
- case Hexagon::STrib_abs_nv_V4:
- return Hexagon::STrib_abs_V4;
-
- case Hexagon::STrib_abs_cdnPt_V4:
- case Hexagon::STrib_abs_cPt_nv_V4:
- case Hexagon::STrib_abs_cdnPt_nv_V4:
- return Hexagon::STrib_abs_cPt_V4;
-
- case Hexagon::STrib_abs_cdnNotPt_V4:
- case Hexagon::STrib_abs_cNotPt_nv_V4:
- case Hexagon::STrib_abs_cdnNotPt_nv_V4:
- return Hexagon::STrib_abs_cNotPt_V4;
-
- case Hexagon::STrih_abs_nv_V4:
- return Hexagon::STrih_abs_V4;
-
- case Hexagon::STrih_abs_cdnPt_V4:
- case Hexagon::STrih_abs_cPt_nv_V4:
- case Hexagon::STrih_abs_cdnPt_nv_V4:
- return Hexagon::STrih_abs_cPt_V4;
-
- case Hexagon::STrih_abs_cdnNotPt_V4:
- case Hexagon::STrih_abs_cNotPt_nv_V4:
- case Hexagon::STrih_abs_cdnNotPt_nv_V4:
- return Hexagon::STrih_abs_cNotPt_V4;
-
- case Hexagon::STriw_abs_nv_V4:
- return Hexagon::STriw_abs_V4;
-
- case Hexagon::STriw_abs_cdnPt_V4:
- case Hexagon::STriw_abs_cPt_nv_V4:
- case Hexagon::STriw_abs_cdnPt_nv_V4:
- return Hexagon::STriw_abs_cPt_V4;
-
- case Hexagon::STriw_abs_cdnNotPt_V4:
- case Hexagon::STriw_abs_cNotPt_nv_V4:
- case Hexagon::STriw_abs_cdnNotPt_nv_V4:
- return Hexagon::STriw_abs_cNotPt_V4;
-
- case Hexagon::STrid_abs_cdnPt_V4:
- return Hexagon::STrid_abs_cPt_V4;
-
- case Hexagon::STrid_abs_cdnNotPt_V4:
- return Hexagon::STrid_abs_cNotPt_V4;
-
-// Absolute addressing mode - immediate values
- case Hexagon::STrib_imm_abs_nv_V4:
- return Hexagon::STrib_imm_abs_V4;
-
- case Hexagon::STrib_imm_abs_cdnPt_V4:
- case Hexagon::STrib_imm_abs_cPt_nv_V4:
- case Hexagon::STrib_imm_abs_cdnPt_nv_V4:
- return Hexagon::STrib_imm_abs_cPt_V4;
-
- case Hexagon::STrib_imm_abs_cdnNotPt_V4:
- case Hexagon::STrib_imm_abs_cNotPt_nv_V4:
- case Hexagon::STrib_imm_abs_cdnNotPt_nv_V4:
- return Hexagon::STrib_imm_abs_cNotPt_V4;
-
- case Hexagon::STrih_imm_abs_nv_V4:
- return Hexagon::STrih_imm_abs_V4;
-
- case Hexagon::STrih_imm_abs_cdnPt_V4:
- case Hexagon::STrih_imm_abs_cPt_nv_V4:
- case Hexagon::STrih_imm_abs_cdnPt_nv_V4:
- return Hexagon::STrih_imm_abs_cPt_V4;
-
- case Hexagon::STrih_imm_abs_cdnNotPt_V4:
- case Hexagon::STrih_imm_abs_cNotPt_nv_V4:
- case Hexagon::STrih_imm_abs_cdnNotPt_nv_V4:
- return Hexagon::STrih_imm_abs_cNotPt_V4;
-
- case Hexagon::STriw_imm_abs_nv_V4:
- return Hexagon::STriw_imm_abs_V4;
-
- case Hexagon::STriw_imm_abs_cdnPt_V4:
- case Hexagon::STriw_imm_abs_cPt_nv_V4:
- case Hexagon::STriw_imm_abs_cdnPt_nv_V4:
- return Hexagon::STriw_imm_abs_cPt_V4;
-
- case Hexagon::STriw_imm_abs_cdnNotPt_V4:
- case Hexagon::STriw_imm_abs_cNotPt_nv_V4:
- case Hexagon::STriw_imm_abs_cdnNotPt_nv_V4:
- return Hexagon::STriw_imm_abs_cNotPt_V4;
-
- // Load - absolute set addressing
- case Hexagon::LDrib_abs_cdnPt_V4:
- return Hexagon::LDrib_abs_cPt_V4;
-
- case Hexagon::LDrib_abs_cdnNotPt_V4:
- return Hexagon::LDrib_abs_cNotPt_V4;
-
- case Hexagon::LDriub_abs_cdnPt_V4:
- return Hexagon::LDriub_abs_cPt_V4;
-
- case Hexagon::LDriub_abs_cdnNotPt_V4:
- return Hexagon::LDriub_abs_cNotPt_V4;
-
- case Hexagon::LDrih_abs_cdnPt_V4:
- return Hexagon::LDrih_abs_cPt_V4;
-
- case Hexagon::LDrih_abs_cdnNotPt_V4:
- return Hexagon::LDrih_abs_cNotPt_V4;
-
- case Hexagon::LDriuh_abs_cdnPt_V4:
- return Hexagon::LDriuh_abs_cPt_V4;
-
- case Hexagon::LDriuh_abs_cdnNotPt_V4:
- return Hexagon::LDriuh_abs_cNotPt_V4;
-
- case Hexagon::LDriw_abs_cdnPt_V4:
- return Hexagon::LDriw_abs_cPt_V4;
-
- case Hexagon::LDriw_abs_cdnNotPt_V4:
- return Hexagon::LDriw_abs_cNotPt_V4;
-
- case Hexagon::LDrid_abs_cdnPt_V4:
- return Hexagon::LDrid_abs_cPt_V4;
-
- case Hexagon::LDrid_abs_cdnNotPt_V4:
- return Hexagon::LDrid_abs_cNotPt_V4;
-
- case Hexagon::LDrib_imm_abs_cdnPt_V4:
- return Hexagon::LDrib_imm_abs_cPt_V4;
-
- case Hexagon::LDrib_imm_abs_cdnNotPt_V4:
- return Hexagon::LDrib_imm_abs_cNotPt_V4;
-
- case Hexagon::LDriub_imm_abs_cdnPt_V4:
- return Hexagon::LDriub_imm_abs_cPt_V4;
-
- case Hexagon::LDriub_imm_abs_cdnNotPt_V4:
- return Hexagon::LDriub_imm_abs_cNotPt_V4;
-
- case Hexagon::LDrih_imm_abs_cdnPt_V4:
- return Hexagon::LDrih_imm_abs_cPt_V4;
-
- case Hexagon::LDrih_imm_abs_cdnNotPt_V4:
- return Hexagon::LDrih_imm_abs_cNotPt_V4;
-
- case Hexagon::LDriuh_imm_abs_cdnPt_V4:
- return Hexagon::LDriuh_imm_abs_cPt_V4;
-
- case Hexagon::LDriuh_imm_abs_cdnNotPt_V4:
- return Hexagon::LDriuh_imm_abs_cNotPt_V4;
-
- case Hexagon::LDriw_imm_abs_cdnPt_V4:
- return Hexagon::LDriw_imm_abs_cPt_V4;
-
- case Hexagon::LDriw_imm_abs_cdnNotPt_V4:
- return Hexagon::LDriw_imm_abs_cNotPt_V4;
-
case Hexagon::STd_GP_cdnPt_V4 :
return Hexagon::STd_GP_cPt_V4;
case Hexagon::STd_GP_cdnNotPt_V4 :
return Hexagon::STd_GP_cNotPt_V4;
- case Hexagon::STrid_GP_cdnPt_V4 :
- return Hexagon::STrid_GP_cPt_V4;
-
- case Hexagon::STrid_GP_cdnNotPt_V4 :
- return Hexagon::STrid_GP_cNotPt_V4;
}
}
case Hexagon::LDriub_indexed_cdnPt :
case Hexagon::POST_LDriub_cPt :
case Hexagon::POST_LDriub_cdnPt_V4 :
- case Hexagon::LDrid_indexed_cPt_V4 :
- case Hexagon::LDrid_indexed_cdnPt_V4 :
case Hexagon::LDrid_indexed_shl_cPt_V4 :
case Hexagon::LDrid_indexed_shl_cdnPt_V4 :
- case Hexagon::LDrib_indexed_cPt_V4 :
- case Hexagon::LDrib_indexed_cdnPt_V4 :
case Hexagon::LDrib_indexed_shl_cPt_V4 :
case Hexagon::LDrib_indexed_shl_cdnPt_V4 :
- case Hexagon::LDriub_indexed_cPt_V4 :
- case Hexagon::LDriub_indexed_cdnPt_V4 :
case Hexagon::LDriub_indexed_shl_cPt_V4 :
case Hexagon::LDriub_indexed_shl_cdnPt_V4 :
- case Hexagon::LDrih_indexed_cPt_V4 :
- case Hexagon::LDrih_indexed_cdnPt_V4 :
case Hexagon::LDrih_indexed_shl_cPt_V4 :
case Hexagon::LDrih_indexed_shl_cdnPt_V4 :
- case Hexagon::LDriuh_indexed_cPt_V4 :
- case Hexagon::LDriuh_indexed_cdnPt_V4 :
case Hexagon::LDriuh_indexed_shl_cPt_V4 :
case Hexagon::LDriuh_indexed_shl_cdnPt_V4 :
- case Hexagon::LDriw_indexed_cPt_V4 :
- case Hexagon::LDriw_indexed_cdnPt_V4 :
case Hexagon::LDriw_indexed_shl_cPt_V4 :
case Hexagon::LDriw_indexed_shl_cdnPt_V4 :
case Hexagon::ADD_ri_cPt :
case Hexagon::ZXTB_cdnPt_V4 :
case Hexagon::ZXTH_cPt_V4 :
case Hexagon::ZXTH_cdnPt_V4 :
-
- case Hexagon::LDrib_abs_cPt_V4 :
- case Hexagon::LDrib_abs_cdnPt_V4:
- case Hexagon::LDriub_abs_cPt_V4 :
- case Hexagon::LDriub_abs_cdnPt_V4:
- case Hexagon::LDrih_abs_cPt_V4 :
- case Hexagon::LDrih_abs_cdnPt_V4:
- case Hexagon::LDriuh_abs_cPt_V4 :
- case Hexagon::LDriuh_abs_cdnPt_V4:
- case Hexagon::LDriw_abs_cPt_V4 :
- case Hexagon::LDriw_abs_cdnPt_V4:
- case Hexagon::LDrid_abs_cPt_V4 :
- case Hexagon::LDrid_abs_cdnPt_V4:
-
- case Hexagon::LDrib_imm_abs_cPt_V4 :
- case Hexagon::LDrib_imm_abs_cdnPt_V4:
- case Hexagon::LDriub_imm_abs_cPt_V4 :
- case Hexagon::LDriub_imm_abs_cdnPt_V4:
- case Hexagon::LDrih_imm_abs_cPt_V4 :
- case Hexagon::LDrih_imm_abs_cdnPt_V4:
- case Hexagon::LDriuh_imm_abs_cPt_V4 :
- case Hexagon::LDriuh_imm_abs_cdnPt_V4:
- case Hexagon::LDriw_imm_abs_cPt_V4 :
- case Hexagon::LDriw_imm_abs_cdnPt_V4:
-
- case Hexagon::STrib_abs_cPt_V4:
- case Hexagon::STrib_abs_cdnPt_V4:
- case Hexagon::STrih_abs_cPt_V4:
- case Hexagon::STrih_abs_cdnPt_V4:
- case Hexagon::STriw_abs_cPt_V4:
- case Hexagon::STriw_abs_cdnPt_V4:
- case Hexagon::STrid_abs_cPt_V4:
- case Hexagon::STrid_abs_cdnPt_V4:
- case Hexagon::STrib_imm_abs_cPt_V4:
- case Hexagon::STrib_imm_abs_cdnPt_V4:
- case Hexagon::STrih_imm_abs_cPt_V4:
- case Hexagon::STrih_imm_abs_cdnPt_V4:
- case Hexagon::STriw_imm_abs_cPt_V4:
- case Hexagon::STriw_imm_abs_cdnPt_V4:
-
- case Hexagon::LDrid_GP_cPt_V4 :
- case Hexagon::LDrib_GP_cPt_V4 :
- case Hexagon::LDriub_GP_cPt_V4 :
- case Hexagon::LDrih_GP_cPt_V4 :
- case Hexagon::LDriuh_GP_cPt_V4 :
- case Hexagon::LDriw_GP_cPt_V4 :
case Hexagon::LDd_GP_cPt_V4 :
case Hexagon::LDb_GP_cPt_V4 :
case Hexagon::LDub_GP_cPt_V4 :
case Hexagon::LDh_GP_cPt_V4 :
case Hexagon::LDuh_GP_cPt_V4 :
case Hexagon::LDw_GP_cPt_V4 :
- case Hexagon::STrid_GP_cPt_V4 :
- case Hexagon::STrib_GP_cPt_V4 :
- case Hexagon::STrih_GP_cPt_V4 :
- case Hexagon::STriw_GP_cPt_V4 :
case Hexagon::STd_GP_cPt_V4 :
case Hexagon::STb_GP_cPt_V4 :
case Hexagon::STh_GP_cPt_V4 :
case Hexagon::STw_GP_cPt_V4 :
- case Hexagon::LDrid_GP_cdnPt_V4 :
- case Hexagon::LDrib_GP_cdnPt_V4 :
- case Hexagon::LDriub_GP_cdnPt_V4 :
- case Hexagon::LDrih_GP_cdnPt_V4 :
- case Hexagon::LDriuh_GP_cdnPt_V4 :
- case Hexagon::LDriw_GP_cdnPt_V4 :
case Hexagon::LDd_GP_cdnPt_V4 :
case Hexagon::LDb_GP_cdnPt_V4 :
case Hexagon::LDub_GP_cdnPt_V4 :
case Hexagon::LDh_GP_cdnPt_V4 :
case Hexagon::LDuh_GP_cdnPt_V4 :
case Hexagon::LDw_GP_cdnPt_V4 :
- case Hexagon::STrid_GP_cdnPt_V4 :
- case Hexagon::STrib_GP_cdnPt_V4 :
- case Hexagon::STrih_GP_cdnPt_V4 :
- case Hexagon::STriw_GP_cdnPt_V4 :
case Hexagon::STd_GP_cdnPt_V4 :
case Hexagon::STb_GP_cdnPt_V4 :
case Hexagon::STh_GP_cdnPt_V4 :
case Hexagon::LDriub_indexed_cdnNotPt :
case Hexagon::POST_LDriub_cNotPt :
case Hexagon::POST_LDriub_cdnNotPt_V4 :
- case Hexagon::LDrid_indexed_cNotPt_V4 :
- case Hexagon::LDrid_indexed_cdnNotPt_V4 :
case Hexagon::LDrid_indexed_shl_cNotPt_V4 :
case Hexagon::LDrid_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDrib_indexed_cNotPt_V4 :
- case Hexagon::LDrib_indexed_cdnNotPt_V4 :
case Hexagon::LDrib_indexed_shl_cNotPt_V4 :
case Hexagon::LDrib_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriub_indexed_cNotPt_V4 :
- case Hexagon::LDriub_indexed_cdnNotPt_V4 :
case Hexagon::LDriub_indexed_shl_cNotPt_V4 :
case Hexagon::LDriub_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDrih_indexed_cNotPt_V4 :
- case Hexagon::LDrih_indexed_cdnNotPt_V4 :
case Hexagon::LDrih_indexed_shl_cNotPt_V4 :
case Hexagon::LDrih_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriuh_indexed_cNotPt_V4 :
- case Hexagon::LDriuh_indexed_cdnNotPt_V4 :
case Hexagon::LDriuh_indexed_shl_cNotPt_V4 :
case Hexagon::LDriuh_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriw_indexed_cNotPt_V4 :
- case Hexagon::LDriw_indexed_cdnNotPt_V4 :
case Hexagon::LDriw_indexed_shl_cNotPt_V4 :
case Hexagon::LDriw_indexed_shl_cdnNotPt_V4 :
case Hexagon::ADD_ri_cNotPt :
case Hexagon::ZXTH_cNotPt_V4 :
case Hexagon::ZXTH_cdnNotPt_V4 :
- case Hexagon::LDrib_abs_cNotPt_V4:
- case Hexagon::LDrib_abs_cdnNotPt_V4:
- case Hexagon::LDriub_abs_cNotPt_V4 :
- case Hexagon::LDriub_abs_cdnNotPt_V4:
- case Hexagon::LDrih_abs_cNotPt_V4 :
- case Hexagon::LDrih_abs_cdnNotPt_V4:
- case Hexagon::LDriuh_abs_cNotPt_V4 :
- case Hexagon::LDriuh_abs_cdnNotPt_V4:
- case Hexagon::LDriw_abs_cNotPt_V4 :
- case Hexagon::LDriw_abs_cdnNotPt_V4:
- case Hexagon::LDrid_abs_cNotPt_V4 :
- case Hexagon::LDrid_abs_cdnNotPt_V4:
-
- case Hexagon::LDrib_imm_abs_cNotPt_V4:
- case Hexagon::LDrib_imm_abs_cdnNotPt_V4:
- case Hexagon::LDriub_imm_abs_cNotPt_V4 :
- case Hexagon::LDriub_imm_abs_cdnNotPt_V4:
- case Hexagon::LDrih_imm_abs_cNotPt_V4 :
- case Hexagon::LDrih_imm_abs_cdnNotPt_V4:
- case Hexagon::LDriuh_imm_abs_cNotPt_V4 :
- case Hexagon::LDriuh_imm_abs_cdnNotPt_V4:
- case Hexagon::LDriw_imm_abs_cNotPt_V4 :
- case Hexagon::LDriw_imm_abs_cdnNotPt_V4:
-
- case Hexagon::STrib_abs_cNotPt_V4:
- case Hexagon::STrib_abs_cdnNotPt_V4:
- case Hexagon::STrih_abs_cNotPt_V4:
- case Hexagon::STrih_abs_cdnNotPt_V4:
- case Hexagon::STriw_abs_cNotPt_V4:
- case Hexagon::STriw_abs_cdnNotPt_V4:
- case Hexagon::STrid_abs_cNotPt_V4:
- case Hexagon::STrid_abs_cdnNotPt_V4:
- case Hexagon::STrib_imm_abs_cNotPt_V4:
- case Hexagon::STrib_imm_abs_cdnNotPt_V4:
- case Hexagon::STrih_imm_abs_cNotPt_V4:
- case Hexagon::STrih_imm_abs_cdnNotPt_V4:
- case Hexagon::STriw_imm_abs_cNotPt_V4:
- case Hexagon::STriw_imm_abs_cdnNotPt_V4:
-
- case Hexagon::LDrid_GP_cNotPt_V4 :
- case Hexagon::LDrib_GP_cNotPt_V4 :
- case Hexagon::LDriub_GP_cNotPt_V4 :
- case Hexagon::LDrih_GP_cNotPt_V4 :
- case Hexagon::LDriuh_GP_cNotPt_V4 :
- case Hexagon::LDriw_GP_cNotPt_V4 :
case Hexagon::LDd_GP_cNotPt_V4 :
case Hexagon::LDb_GP_cNotPt_V4 :
case Hexagon::LDub_GP_cNotPt_V4 :
case Hexagon::LDh_GP_cNotPt_V4 :
case Hexagon::LDuh_GP_cNotPt_V4 :
case Hexagon::LDw_GP_cNotPt_V4 :
- case Hexagon::STrid_GP_cNotPt_V4 :
- case Hexagon::STrib_GP_cNotPt_V4 :
- case Hexagon::STrih_GP_cNotPt_V4 :
- case Hexagon::STriw_GP_cNotPt_V4 :
case Hexagon::STd_GP_cNotPt_V4 :
case Hexagon::STb_GP_cNotPt_V4 :
case Hexagon::STh_GP_cNotPt_V4 :
case Hexagon::STw_GP_cNotPt_V4 :
- case Hexagon::LDrid_GP_cdnNotPt_V4 :
- case Hexagon::LDrib_GP_cdnNotPt_V4 :
- case Hexagon::LDriub_GP_cdnNotPt_V4 :
- case Hexagon::LDrih_GP_cdnNotPt_V4 :
- case Hexagon::LDriuh_GP_cdnNotPt_V4 :
- case Hexagon::LDriw_GP_cdnNotPt_V4 :
case Hexagon::LDd_GP_cdnNotPt_V4 :
case Hexagon::LDb_GP_cdnNotPt_V4 :
case Hexagon::LDub_GP_cdnNotPt_V4 :
case Hexagon::LDh_GP_cdnNotPt_V4 :
case Hexagon::LDuh_GP_cdnNotPt_V4 :
case Hexagon::LDw_GP_cdnNotPt_V4 :
- case Hexagon::STrid_GP_cdnNotPt_V4 :
- case Hexagon::STrib_GP_cdnNotPt_V4 :
- case Hexagon::STrih_GP_cdnNotPt_V4 :
- case Hexagon::STriw_GP_cdnNotPt_V4 :
case Hexagon::STd_GP_cdnNotPt_V4 :
case Hexagon::STb_GP_cdnNotPt_V4 :
case Hexagon::STh_GP_cdnNotPt_V4 :
case Hexagon::POST_LDriub_cdnPt_V4 :
case Hexagon::POST_LDriub_cdnNotPt_V4 :
- case Hexagon::LDrid_indexed_cdnPt_V4 :
- case Hexagon::LDrid_indexed_cdnNotPt_V4 :
case Hexagon::LDrid_indexed_shl_cdnPt_V4 :
case Hexagon::LDrid_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDrib_indexed_cdnPt_V4 :
- case Hexagon::LDrib_indexed_cdnNotPt_V4 :
case Hexagon::LDrib_indexed_shl_cdnPt_V4 :
case Hexagon::LDrib_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriub_indexed_cdnPt_V4 :
- case Hexagon::LDriub_indexed_cdnNotPt_V4 :
case Hexagon::LDriub_indexed_shl_cdnPt_V4 :
case Hexagon::LDriub_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDrih_indexed_cdnPt_V4 :
- case Hexagon::LDrih_indexed_cdnNotPt_V4 :
case Hexagon::LDrih_indexed_shl_cdnPt_V4 :
case Hexagon::LDrih_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriuh_indexed_cdnPt_V4 :
- case Hexagon::LDriuh_indexed_cdnNotPt_V4 :
case Hexagon::LDriuh_indexed_shl_cdnPt_V4 :
case Hexagon::LDriuh_indexed_shl_cdnNotPt_V4 :
- case Hexagon::LDriw_indexed_cdnPt_V4 :
- case Hexagon::LDriw_indexed_cdnNotPt_V4 :
case Hexagon::LDriw_indexed_shl_cdnPt_V4 :
case Hexagon::LDriw_indexed_shl_cdnNotPt_V4 :
case Hexagon::LDuh_GP_cdnNotPt_V4:
case Hexagon::LDw_GP_cdnPt_V4:
case Hexagon::LDw_GP_cdnNotPt_V4:
- case Hexagon::LDrid_GP_cdnPt_V4:
- case Hexagon::LDrid_GP_cdnNotPt_V4:
- case Hexagon::LDrib_GP_cdnPt_V4:
- case Hexagon::LDrib_GP_cdnNotPt_V4:
- case Hexagon::LDriub_GP_cdnPt_V4:
- case Hexagon::LDriub_GP_cdnNotPt_V4:
- case Hexagon::LDrih_GP_cdnPt_V4:
- case Hexagon::LDrih_GP_cdnNotPt_V4:
- case Hexagon::LDriuh_GP_cdnPt_V4:
- case Hexagon::LDriuh_GP_cdnNotPt_V4:
- case Hexagon::LDriw_GP_cdnPt_V4:
- case Hexagon::LDriw_GP_cdnNotPt_V4:
-
- case Hexagon::STrid_GP_cdnPt_V4:
- case Hexagon::STrid_GP_cdnNotPt_V4:
- case Hexagon::STrib_GP_cdnPt_V4:
- case Hexagon::STrib_GP_cdnNotPt_V4:
- case Hexagon::STrih_GP_cdnPt_V4:
- case Hexagon::STrih_GP_cdnNotPt_V4:
- case Hexagon::STriw_GP_cdnPt_V4:
- case Hexagon::STriw_GP_cdnNotPt_V4:
+
case Hexagon::STd_GP_cdnPt_V4:
case Hexagon::STd_GP_cdnNotPt_V4:
case Hexagon::STb_GP_cdnPt_V4:
// Check to make sure that they both will have their predicates
// evaluate identically
- unsigned predRegNumSrc;
- unsigned predRegNumDst;
- const TargetRegisterClass* predRegClass;
+ unsigned predRegNumSrc = 0;
+ unsigned predRegNumDst = 0;
+ const TargetRegisterClass* predRegClass = NULL;
// Get predicate register used in the source instruction
for(unsigned opNum = 0; opNum < PacketMI->getNumOperands(); opNum++) {
// 1. Two loads unless they are volatile.
// 2. Two stores in V4 unless they are volatile.
else if ((DepType == SDep::Order) &&
- !I->hasVolatileMemoryRef() &&
- !J->hasVolatileMemoryRef()) {
+ !I->hasOrderedMemoryRef() &&
+ !J->hasOrderedMemoryRef()) {
if (QRI->Subtarget.hasV4TOps() &&
// hexagonv4 allows dual store.
MCIDI.mayStore() && MCIDJ.mayStore()) {
&& QRI->Subtarget.hasV4TOps()
&& J->getOpcode() == Hexagon::ALLOCFRAME
&& (I->getOpcode() == Hexagon::STrid
- || I->getOpcode() == Hexagon::STriw_indexed
|| I->getOpcode() == Hexagon::STriw
|| I->getOpcode() == Hexagon::STrib)
&& I->getOperand(0).getReg() == QRI->getStackRegister()
MachineInstr *nvjMI = MII;
assert(ResourceTracker->canReserveResources(MI));
ResourceTracker->reserveResources(MI);
- if ((QII->isExtended(MI) || QII->isConstExtended(MI)) &&
+ if (QII->isExtended(MI) &&
!tryAllocateResourcesForConstExt(MI)) {
endPacket(MBB, MI);
ResourceTracker->reserveResources(MI);
CurrentPacketMIs.push_back(MI);
CurrentPacketMIs.push_back(nvjMI);
} else {
- if ( (QII->isExtended(MI) || QII->isConstExtended(MI))
+ if ( QII->isExtended(MI)
&& ( !tryAllocateResourcesForConstExt(MI)
|| !ResourceTracker->canReserveResources(MI)))
{