@@ -651,19 +651,41 @@ void TVMStackModel::rewriteToSForm(MachineInstr &MI,
651651 MFI->addStackModelComment (MIB.getInstr (), Then->getName ());
652652 MFI->addStackModelComment (MIB.getInstr (), Else->getName ());
653653 } else {
654- MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
655- TII->get (TVM::PUSH)).addImm (ThenID);
654+ if (ThenID < 256 ) {
655+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
656+ TII->get (TVM::PUSH)).addImm (ThenID);
657+ } else {
658+ BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
659+ TII->get (TVM::CONST_I257_S)).addImm (ThenID);
660+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
661+ TII->get (TVM::PUSHX));
662+ }
656663 MFI->addStackModelComment (MIB.getInstr (), Then->getName ());
657- MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
658- TII->get (TVM::PUSH)).addImm (ElseID + 1 );
664+ if (ElseID < 255 ) {
665+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
666+ TII->get (TVM::PUSH)).addImm (ElseID + 1 );
667+ } else {
668+ BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
669+ TII->get (TVM::CONST_I257_S)).addImm (ElseID + 1 );
670+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
671+ TII->get (TVM::PUSHX));
672+ }
659673 MFI->addStackModelComment (MIB.getInstr (), Else->getName ());
660674 }
661675 } else if (MI.getOpcode () == TVM::JMPX) {
662676 auto Dest = MI.getOperand (0 ).getMBB ();
663677 unsigned DestID = TheStack.size () + BBInfo[Dest].getID ();
664678
665- auto MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
666- TII->get (TVM::PUSH)).addImm (DestID);
679+ MachineInstrBuilder MIB;
680+ if (DestID < 256 ) {
681+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
682+ TII->get (TVM::PUSH)).addImm (DestID);
683+ } else {
684+ BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
685+ TII->get (TVM::CONST_I257_S)).addImm (DestID);
686+ MIB = BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
687+ TII->get (TVM::PUSHX));
688+ }
667689 MFI->addStackModelComment (MIB.getInstr (), Dest->getName ());
668690 }
669691
0 commit comments