- // Bail if there are too many registers to encode.
- unsigned NumRegsToEncode = SavedRegs.size() - (FramePointerReg != -1 ? 1 : 0);
- if (NumRegsToEncode > 5) return 0;
-
- if (TRI->getLLVMRegNum(FramePointerReg, IsEH) != X86::EBP &&
- TRI->getLLVMRegNum(FramePointerReg, IsEH) != X86::RBP)
- // FIXME: Handle frameless version!
- return 0;
-
- Encoding |= 1 << 24;
- Encoding |= (CFAOffset & 0xFF) << 16;
-
- unsigned Idx = 0;
- for (SmallVectorImpl<unsigned>::iterator
- I = SavedRegs.begin(), E = SavedRegs.end(); I != E; ++I) {
- if (*I == unsigned(FramePointerReg)) continue;
+ if (FramePointerReg != -1) {
+ // Bail if there are too many registers to encode.
+ if (SavedRegs.size() - 1 > 5) return 0;