<s> DebugLoc dl = MBBI -> getDebugLoc ( ) ; bool FP = hasFP ( MF ) ; long NumBytes = MFI -> getStackSize ( ) ; if ( FP ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( <NUM_LIT> ) . addReg ( <STR_LIT> ) ; } if ( NumBytes != <NUM_LIT> ) { if ( NumBytes <= IMM_HIGH


<s> if ( FP ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( <NUM_LIT> ) . addReg ( <STR_LIT> ) ; } if ( NumBytes != <NUM_LIT> ) { if ( NumBytes <= IMM_HIGH ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( NumBytes ) . addReg ( <STR_LIT> ) ; } else if ( getUpper16 ( NumBytes ) <= IMM_HIGH ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) .

addImm ( getUpper16 ( NumBytes ) ) . addReg ( <STR_LIT> ) ;


<s> if ( NumBytes >= IMM_LOW ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( NumBytes ) . addReg ( <STR_LIT> ) ; } else if ( getUpper16 ( NumBytes ) >= IMM_LOW ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( getUpper16 ( NumBytes ) ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( getLower16 ( NumBytes ) ) . addReg ( <STR_LIT> ) ; } else { std :: string msg ; raw_string_ostream Msg ( msg ) ; Msg << <STR_LIT> << NumBytes ; llvm_report_error ( Msg . str ( ) ) ; } if ( FP ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) ) . addReg ( <STR_LIT> ) . addImm (


<s> } int FrameIndex = MI . getOperand ( i ) . getIndex ( ) ; MI . getOperand ( i + <NUM_LIT> ) . ChangeToRegister ( FP ? <STR_LIT> : <STR_LIT> , false ) ; int Offset = MF . getFrameInfo ( ) -> getObjectOffset ( FrameIndex ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << FrameIndex << <STR_LIT> << Offset << <STR_LIT> ; Offset += MF . getFrameInfo ( ) -> getStackSize ( ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << Offset << <STR_LIT> << MF . getFrameInfo ( ) -> getStackSize ( ) << <STR_LIT> ; if ( Offset > IMM_HIGH || Offset < IMM_LOW ) { DOUT ( llvm :: dbgs ( ) << <STR_LIT>


<s> void <ISA_LIT>RegisterInfo :: eliminateCallFramePseudoInstr ( MachineFunction & MF , MachineBasicBlock & MBB , MachineBasicBlock :: iterator I ) const { const TargetFrameLowering * TFI = MF . getTarget ( ) . getFrameLowering ( ) ; if ( TFI -> hasFP ( MF ) ) { MachineInstr * Old = I ; uint64_t Amount = Old -> getOperand ( <NUM_LIT> ) . getImm ( ) ; if ( Amount != <NUM_LIT> ) { unsigned Align = TFI -> getStackAlignment ( ) ; Amount = ( Amount + Align - <NUM_LIT> ) / Align * Align ; MachineInstr * New ; if ( Old -> getOpcode ( ) == <STR_LIT> ) { New = BuildMI ( MF , Old -> getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( - Amount ) . addReg ( <STR_LIT> ) ; } else


<s> const TargetFrameLowering * TFI = MF . getTarget ( ) . getFrameLowering ( ) ; return TFI -> hasFP ( MF ) ? <STR_LIT>


<s> const TargetFrameLowering * TFI = MF . getTarget ( ) .


<s> std :: string <ISA_LIT>RegisterInfo ::


<s> BitVector Reserved ( getNumRegs ( ) ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set


<s> BitVector <ISA_LIT>RegisterInfo :: getReservedRegs ( const MachineFunction & MF ) const { BitVector Reserved ( getNumRegs ( ) ) ; Reserved . set ( <STR_LIT>


<s> if ( hasFP ( MF ) ) { MachineInstr * Old = I ; uint64_t Amount = Old -> getOperand ( <NUM_LIT> ) . getImm ( ) ; if ( Amount != <NUM_LIT> ) { unsigned Align = MF . getTarget ( ) . getFrameInfo ( ) -> getStackAlignment ( ) ; Amount = ( Amount + Align - <NUM_LIT> ) / Align * Align ; MachineInstr * New ; if ( Old -> getOpcode ( ) == <STR_LIT> ) { New = BuildMI ( MF , Old -> getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( - Amount ) . addReg ( <STR_LIT> ) ; } else { assert ( Old -> getOpcode ( ) == <STR_LIT> ) ; New = BuildMI ( MF , Old -> getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( Amount ) . addReg ( <STR_LIT> ) ; } MBB . insert ( I


<s> MachineInstr * New ; if ( Old -> getOpcode ( ) == <STR_LIT> ) { New = BuildMI ( MF , Old -> getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( - Amount ) . addReg ( <STR_LIT> ) ; } else { assert ( Old -> getOpcode ( ) == <STR_LIT> ) ; New = BuildMI ( MF , Old -> getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( Amount ) . addReg ( <STR_LIT> ) ; } MBB . insert ( I , New ) ; } } MBB . erase (


<s> MachineBasicBlock & MBB = * MI . getParent ( ) ; MachineFunction & MF = * MBB . getParent ( ) ; bool FP = hasFP ( MF ) ; while ( ! MI . getOperand ( i ) . isFI ( ) ) { ++ i ; assert ( i < MI . getNumOperands ( ) && <STR_LIT> ) ; } int FrameIndex = MI . getOperand ( i ) . getIndex ( ) ; MI . getOperand ( i + <NUM_LIT> ) . ChangeToRegister ( FP ? <STR_LIT> : <STR_LIT> , false ) ; int Offset = MF . getFrameInfo (


<s> MachineBasicBlock & MBB = * MI . getParent ( ) ; MachineFunction & MF = * MBB . getParent ( ) ; bool FP = hasFP ( MF ) ; while ( ! MI . getOperand ( i ) . isFI ( ) ) { ++ i ; assert ( i < MI . getNumOperands ( ) && <STR_LIT> ) ; } int FrameIndex = MI . getOperand ( i ) . getIndex ( ) ; MI . getOperand ( i + <NUM_LIT> ) . ChangeToRegister ( FP ? <STR_LIT> : <STR_LIT> , false ) ; int Offset = MF . getFrameInfo ( ) -> getObjectOffset ( FrameIndex ) ; DEBUG ( errs ( ) << <STR_LIT> << FrameIndex << <STR_LIT> << Offset << <STR_LIT> ) ; Offset += MF . getFrameInfo ( ) -> getStackSize ( ) ; DEBUG ( errs ( ) << <STR_LIT> << Offset << <STR_LIT> << MF . getFrameInfo ( ) -> getStackSize ( ) << <STR_LIT> ) ; if ( Offset > IMM_HIGH || Offset < IMM_LOW ) { DEBUG ( errs ( ) << <STR_LIT> << Offset


<s> MachineBasicBlock & MBB = MF . front ( ) ; MachineBasicBlock :: iterator MBBI = MBB . begin ( ) ; MachineFrameInfo * MFI = MF . getFrameInfo ( ) ; DebugLoc dl = ( MBBI != MBB . end ( ) ? MBBI -> getDebugLoc ( ) : DebugLoc ( ) ) ; bool FP = hasFP ( MF ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addGlobalAddress ( const_cast < Function * > ( MF . getFunction ( ) ) ) . addReg ( <STR_LIT> ) . addImm ( ++ curgpdist ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addGlobalAddress ( const_cast < Function * > ( MF . getFunction ( ) ) ) . addReg ( <STR_LIT> ) . addImm ( curgpdist ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) ) . addGlobalAddress ( const_cast < Function * > ( MF . getFunction ( ) ) ) ; long NumBytes = MFI ->


<s> const TargetRegisterClass * const * <ISA_LIT>RegisterInfo :: getCalleeSavedRegClasses ( const MachineFunction * MF ) const { static const TargetRegisterClass * const CalleeSavedRegClasses [ ] = { & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , & <STR_LIT> , <NUM_LIT> } ; return CalleeSavedRegClasses


<s> int <ISA_LIT>RegisterInfo :: getDwarfRegNum ( unsigned RegNum ,


<s> int <ISA_LIT>RegisterInfo :: getDwarfRegNum ( unsigned RegNum , bool isEH ) const { llvm_unreachable ( <STR_LIT>


<s> unsigned <ISA_LIT>RegisterInfo :: getEHExceptionRegister ( ) const { llvm_unreachable ( <STR_LIT>


<s> unsigned <ISA_LIT>RegisterInfo :: getFrameRegister ( const MachineFunction & MF


<s> unsigned <ISA_LIT>RegisterInfo :: getFrameRegister ( const MachineFunction & MF ) const { return hasFP ( MF )


<s> std :: string <ISA_LIT>RegisterInfo :: getPrettyName ( unsigned reg ) { std :: string s ( RegisterDescriptors [ reg ] . Name ) ; return


<s> unsigned <ISA_LIT>RegisterInfo :: getRARegister ( ) const { return <STR_LIT>


<s> BitVector Reserved ( getNumRegs ( ) ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set


<s> BitVector <ISA_LIT>RegisterInfo :: getReservedRegs ( const MachineFunction & MF ) const { BitVector Reserved ( getNumRegs ( ) ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT>


<s> if ( l % IMM_MULT > IMM_HIGH ) ++ y ; return


<s> bool <ISA_LIT>RegisterInfo :: hasFP ( const MachineFunction & MF


<s> <ISA_LIT>Subtarget :: <ISA_LIT>Subtarget ( const Module & M , const std :: string


<s> <ISA_LIT>Subtarget :: <ISA_LIT>Subtarget ( const std :: string & TT , const std :: string & CPU , const std :: string & FS ) : <ISA_LIT>GenSubtargetInfo ( TT , CPU , FS ) , HasCT ( false ) { std :: string


<s> <ISA_LIT>TargetAsmInfo :: <ISA_LIT>TargetAsmInfo ( const <ISA_LIT>TargetMachine & TM ) : TargetAsmInfo


<s> return ( TM . getRelocationModel ( ) != Reloc :: Static ? Reloc ::


<s> return ( TM . getRelocationModel ( ) != Reloc :: Static ? Reloc :: LocalOrGlobal


<s> PM . add ( create<ISA_LIT>ObjectCodeEmitterPass ( * this , OCE ) ) ; return false


<s> bool <ISA_LIT>TargetMachine :: addSimpleCodeEmitter ( PassManagerBase & PM , CodeGenOpt :: Level OptLevel , ObjectCodeEmitter & OCE ) { return addCodeEmitter ( PM , OptLevel , OCE


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , const std :: string & TT , const std :: string & FS ) : LLVMTargetMachine ( T , TT ) , DataLayout ( <STR_LIT> ) , FrameInfo ( TargetFrameInfo :: StackGrowsDown , <NUM_LIT> , <NUM_LIT> ) , JITInfo ( * this ) , Subtarget ( TT , FS ) , TLInfo ( * this ) { setRelocationModel ( Reloc ::


<s> virtual <ISA_LIT>JITInfo * getJITInfo ( ) { return & JITInfo


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , const std :: string & TT , const std :: string & FS ) : LLVMTargetMachine ( T , TT ) , DataLayout ( <STR_LIT> ) , FrameLowering ( Subtarget ) , Subtarget ( TT , FS ) , TLInfo ( * this ) , TSInfo ( * this ) { setRelocationModel ( Reloc :: PIC_


<s> virtual <ISA_LIT>TargetLowering * getTargetLowering (


<s> void LLVMInitialize<ISA_LIT>Target ( ) { RegisterTargetMachine < <ISA_LIT>TargetMachine > X ( The<ISA_LIT>Target ) ; RegisterAsmInfo < <ISA_LIT>MCAsmInfo >


<s> RegisterAsmInfo < <ISA_LIT>MCAsmInfo > Y (


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , const std :: string & TT , const std :: string & FS ) : LLVMTargetMachine ( T , TT ) , DataLayout ( <STR_LIT> ) , FrameInfo ( TargetFrameInfo :: StackGrowsDown , <NUM_LIT> , <NUM_LIT> ) , JITInfo ( * this )

, Subtarget ( TT , FS ) , TLInfo ( * this ) , TSInfo ( * this ) {


<s> if ( DumpAsm ) PM . add ( create<ISA_LIT>CodePrinterPass ( errs ( ) , * this , OptLevel , true ) ) ; return false


<s> if ( DumpAsm ) PM . add ( create<ISA_LIT>CodePrinterPass ( errs ( ) , * this , OptLevel , true ) ) ; return


<s> bool <ISA_LIT>TargetMachine :: addPreEmitPass ( PassManagerBase &


<s> bool <ISA_LIT>TargetMachine :: addSimpleCodeEmitter ( PassManagerBase & PM , CodeGenOpt :: Level

OptLevel , bool DumpAsm , JITCodeEmitter & JCE ) {


<s> return addCodeEmitter ( PM , OptLevel


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Module & M , const std :: string & FS ) : DataLayout ( <STR_LIT> ) , FrameInfo ( TargetFrameInfo :: StackGrowsDown , <NUM_LIT> , <NUM_LIT> ) , JITInfo ( * this ) , Subtarget ( M , FS ) , TLInfo ( * this ) { setRelocationModel ( Reloc ::


<s> return new <ISA_LIT>TargetAsmInfo ( * this )


<s> if ( M . getEndianness ( ) == Module :: LittleEndian && M . getPointerSize ( ) == Module :: Pointer64 ) return <NUM_LIT> ; else if ( M . getEndianness ( ) != Module :: AnyEndianness || M . getPointerSize

( ) != Module :: AnyPointerSize ) return <NUM_LIT> ;


<s> if ( TT . size ( ) >= <NUM_LIT> && TT [ <NUM_LIT> ] == 'a' && TT [ <NUM_LIT> ] == 'l' && TT [ <NUM_LIT> ] == 'p' && TT [ <NUM_LIT> ] == 'h' && TT [ <NUM_LIT> ] == 'a' ) return <NUM_LIT> ; if ( ! TT . empty ( ) ) return


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , const std :: string & TT , const std :: string & FS ) : LLVMTargetMachine ( T , TT ) , DataLayout ( <STR_LIT> ) , FrameInfo ( Subtarget ) , Subtarget ( TT , FS ) , TLInfo ( * this ) , TSInfo ( * this ) { setRelocationModel ( Reloc :: PIC_


<s> PM . add ( create<ISA_LIT>CodePrinterPass ( Out , * this , Fast ) ) ; return false


<s> PM . add ( create<ISA_LIT>CodeEmitterPass ( * this , MCE ) ) ; if ( DumpAsm ) PM . add ( create<ISA_LIT>CodePrinterPass ( errs ( ) , * this , Fast ) ) ; return false


<s> PM . add ( create<ISA_LIT>BranchSelectionPass (


<s> bool <ISA_LIT>TargetMachine :: addSimpleCodeEmitter ( PassManagerBase & PM , bool Fast ,

bool DumpAsm , MachineCodeEmitter & MCE ) {


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , const std :: string & TT , const std :: string & FS ) : LLVMTargetMachine ( T , TT ) , DataLayout ( <STR_LIT> ) , FrameInfo ( TargetFrameInfo :: StackGrowsDown , <NUM_LIT> , <NUM_LIT> ) , JITInfo ( * this ) , Subtarget ( TT , FS ) , TLInfo ( * this ) { setRelocationModel ( Reloc


<s> PM . add ( create<ISA_LIT>ISelDag ( * this ) ) ; return false


<s> bool <ISA_LIT>TargetMachine :: addInstSelector ( PassManagerBase & PM , CodeGenOpt :: Level OptLevel ) { PM . add ( create<ISA_LIT>ISelDag ( * this


<s> PM . add ( create<ISA_LIT>BranchSelectionPass ( ) ) ; PM . add ( create<ISA_LIT>LLRPPass ( * this ) ) ; return


<s> virtual const TargetFrameLowering * getFrameLowering ( ) const { return & FrameLowering


<s> return & InstrInfo . getRegisterInfo


<s> virtual const TargetData * getTargetData ( ) const { return & DataLayout


<s> virtual const <ISA_LIT>TargetLowering * getTargetLowering ( )


<s> void LLVMInitialize<ISA_LIT>Target ( ) { RegisterTargetMachine < <ISA_LIT>TargetMachine > X (