<s> SDValue Base = DAG . getLoad ( <STR_LIT> , dl , Chain , VAListP , MachinePointerInfo ( VAListS ) , false , false , <NUM_LIT> ) ; SDValue Tmp = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , VAListP , DAG . getConstant ( <NUM_LIT> , <STR_LIT> ) ) ; SDValue Offset = DAG . getExtLoad ( <STR_LIT> , <STR_LIT> , dl , Base . getValue ( <NUM_LIT> ) , Tmp , MachinePointerInfo ( ) , <STR_LIT> , false , false , <NUM_LIT> ) ; DataPtr = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , Base , Offset ) ;


<s> setBooleanContents ( ZeroOrOneBooleanContent ) ; setUsesGlobalOffsetTable ( true ) ; addRegisterClass ( <STR_LIT> , <STR_LIT> ) ; addRegisterClass ( <STR_LIT> , <STR_LIT> ) ; addRegisterClass ( <STR_LIT> , <STR_LIT> ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setLoadExtAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setTruncStoreAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; if ( ! TM . getSubtarget < <ISA_LIT>Subtarget > ( ) . hasCT ( ) ) { setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; } setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ;


<s> for ( unsigned i = <NUM_LIT> , e = RegsToPass . size ( ) ; i != e ; ++ i ) { Chain = DAG . getCopyToReg ( Chain , dl , RegsToPass [ i ] . first , RegsToPass [ i ] . second , InFlag ) ; InFlag = Chain . getValue ( <NUM_LIT> ) ; } SDVTList NodeTys = DAG . getVTList ( <STR_LIT> , <STR_LIT> ) ; SmallVector < SDValue , <NUM_LIT> > Ops ; Ops . push_back ( Chain ) ; Ops . push_back ( Callee ) ; for ( unsigned i = <NUM_LIT> , e = RegsToPass . size ( ) ; i != e ; ++ i ) Ops . push_back ( DAG . getRegister ( RegsToPass [ i ] . first , RegsToPass [ i ] . second . getValueType ( ) ) ) ; if ( InFlag . getNode ( ) ) Ops . push_back ( InFlag ) ; Chain = DAG . getNode ( <STR_LIT> , dl , NodeTys , & Ops [ <NUM_LIT> ] , Ops . size ( ) ) ; InFlag = Chain . getValue ( <NUM_LIT> ) ; Chain = DAG . getCALLSEQ_END ( Chain , DAG . getConstant ( NumBytes , getPointerTy ( ) , true ) , DAG . getConstant ( <NUM_LIT> , getPointerTy ( ) , true ) , InFlag ) ; InFlag = Chain . getValue ( <NUM_LIT> ) ;

return LowerCallResult ( Chain , InFlag , CallConv , isVarArg , Ins , dl , DAG , InVals ) ;


<s> CCValAssign & VA = RVLocs [ i ] ; Chain = DAG . getCopyFromReg ( Chain , dl , VA . getLocReg ( ) , VA . getLocVT ( ) , InFlag ) . getValue ( <NUM_LIT> ) ; SDValue RetValue = Chain . getValue ( <NUM_LIT> ) ; InFlag = Chain . getValue ( <NUM_LIT> ) ; if ( VA . getLocInfo ( ) == CCValAssign :: SExt ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getLocVT ( ) , RetValue , DAG . getValueType ( VA . getValVT ( ) ) ) ; else if ( VA . getLocInfo ( ) == CCValAssign :: ZExt ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getLocVT ( ) , RetValue , DAG . getValueType ( VA . getValVT ( ) ) ) ; if ( VA . getLocInfo ( ) != CCValAssign :: Full ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getValVT ( ) , RetValue ) ;


<s> if ( VA . getLocInfo ( ) == CCValAssign :: SExt ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getLocVT ( ) , RetValue , DAG . getValueType ( VA . getValVT ( ) ) ) ; else if ( VA . getLocInfo ( ) == CCValAssign :: ZExt ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getLocVT ( ) , RetValue , DAG . getValueType ( VA . getValVT ( ) ) ) ;

if ( VA . getLocInfo ( ) != CCValAssign :: Full ) RetValue = DAG . getNode ( <STR_LIT> , dl , VA . getValVT ( ) , RetValue ) ;


<s> <STR_LIT> , <STR_LIT> , <STR_LIT> , <STR_LIT> , <STR_LIT> , <STR_LIT> } ; for ( unsigned ArgNo = <NUM_LIT> , e = Ins . size ( ) ; ArgNo != e ; ++ ArgNo ) { SDValue argt ; EVT ObjectVT = Ins [ ArgNo ] . VT ; SDValue ArgVal ; if ( ArgNo < <NUM_LIT> ) { switch ( ObjectVT . getSimpleVT ( ) . SimpleTy ) { default : assert ( false && <STR_LIT> ) ; case <STR_LIT> : args_float [ ArgNo ] = AddLiveIn ( MF , args_float [ ArgNo ] , & <STR_LIT> ) ; ArgVal = DAG . getCopyFromReg ( Chain , dl , args_float [ ArgNo ] , ObjectVT ) ; break ; case <STR_LIT> : args_float [ ArgNo ] = AddLiveIn ( MF , args_float [ ArgNo ] , & <STR_LIT> ) ; ArgVal = DAG . getCopyFromReg ( Chain , dl , args_float [ ArgNo ] , ObjectVT ) ; break ; case <STR_LIT> : args_int [ ArgNo ] = AddLiveIn ( MF , args_int [ ArgNo ] , & <STR_LIT> ) ; ArgVal = DAG . getCopyFromReg ( Chain , dl , args_int [ ArgNo ] , <STR_LIT> ) ; break ; } } else { int FI = MFI -> CreateFixedObject ( <NUM_LIT> , <NUM_LIT> * ( ArgNo - <NUM_LIT> ) ) ; SDValue FIN = DAG . getFrameIndex ( FI , <STR_LIT> ) ;

ArgVal = DAG . getLoad ( ObjectVT , dl , Chain , FIN , NULL , <NUM_LIT> ) ;


<s> EVT PtrVT = Op . getValueType ( ) ; JumpTableSDNode * JT = cast < JumpTableSDNode > ( Op ) ; SDValue JTI = DAG . getTargetJumpTable ( JT -> getIndex ( ) , PtrVT ) ; SDValue Zero = DAG . getConstant ( <NUM_LIT> , PtrVT ) ; DebugLoc dl = Op . getDebugLoc ( ) ; SDValue Hi = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , JTI , DAG . getGLOBAL_OFFSET_TABLE ( <STR_LIT> ) ) ; SDValue Lo = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , JTI , Hi ) ;


<s> DebugLoc dl = Op . getDebugLoc ( ) ; SDValue Hi = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , JTI , DAG . getGLOBAL_OFFSET_TABLE ( <STR_LIT> ) ) ; SDValue Lo = DAG . getNode ( <STR_LIT> , dl , <STR_LIT> , JTI , Hi ) ;


<s> unsigned ArgReg ; if ( ArgVT . isInteger ( ) ) ArgReg = <STR_LIT> ; else { assert ( ArgVT . isFloatingPoint ( ) ) ; ArgReg = <STR_LIT> ; } Copy = DAG . getCopyToReg ( Copy , dl , ArgReg , Outs [ <NUM_LIT> ] . Val , Copy . getValue ( <NUM_LIT> ) ) ; if ( DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_empty ( ) ) DAG . getMachineFunction ( ) . getRegInfo ( ) . addLiveOut ( ArgReg ) ; break ; } case <NUM_LIT> : { EVT ArgVT = Outs [ <NUM_LIT> ] . Val . getValueType ( ) ; unsigned ArgReg1 , ArgReg2 ; if ( ArgVT . isInteger ( ) ) { ArgReg1 = <STR_LIT> ; ArgReg2 = <STR_LIT> ; } else { assert ( ArgVT . isFloatingPoint ( ) ) ;


<s> ArgReg1 = <STR_LIT> ; ArgReg2 = <STR_LIT> ; } Copy = DAG . getCopyToReg ( Copy , dl , ArgReg1 , Outs [ <NUM_LIT> ] . Val , Copy . getValue ( <NUM_LIT> ) ) ; if ( std :: find ( DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_begin ( ) , DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_end ( ) , ArgReg1 ) == DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_end ( ) ) DAG . getMachineFunction ( ) . getRegInfo ( ) . addLiveOut ( ArgReg1 ) ; Copy = DAG . getCopyToReg ( Copy , dl , ArgReg2 , Outs [ <NUM_LIT> ] . Val , Copy . getValue ( <NUM_LIT> ) ) ; if ( std :: find ( DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_begin ( ) , DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_end ( ) , ArgReg2 ) == DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_end ( ) ) DAG . getMachineFunction ( ) . getRegInfo ( ) . addLiveOut ( ArgReg2 ) ;


<s> } Copy = DAG . getCopyToReg ( Copy , dl , ArgReg , Outs [ <NUM_LIT> ] . Val , Copy . getValue ( <NUM_LIT> ) ) ; if ( DAG . getMachineFunction ( ) . getRegInfo ( ) . liveout_empty ( ) ) DAG . getMachineFunction ( ) . getRegInfo ( ) . addLiveOut ( ArgReg ) ; break ; } case <NUM_LIT> : { EVT ArgVT = Outs [ <NUM_LIT> ] . Val . getValueType ( ) ; unsigned ArgReg1 , ArgReg2 ; if ( ArgVT . isInteger ( ) ) { ArgReg1 = <STR_LIT> ; ArgReg2 = <STR_LIT> ; } else { assert ( ArgVT . isFloatingPoint ( ) ) ; ArgReg1 = <STR_LIT> ; ArgReg2 = <STR_LIT> ; }

Copy = DAG . getCopyToReg ( Copy , dl , ArgReg1 , Outs [ <NUM_LIT> ] . Val , Copy . getValue ( <NUM_LIT> ) ) ;


<s> if ( ! TM . getSubtarget < <ISA_LIT>Subtarget > ( ) . hasCT ( ) ) { setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; } setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ;


<s> EVT <ISA_LIT>TargetLowering :: getSetCCResultType ( EVT VT ) const { return <STR_LIT> ;


<s> EmitBranchToAt ( CameFromStub , Target ) ; } else { DEBUG ( errs ( ) << <STR_LIT> << CameFromStub << <STR_LIT> << oldpv << <STR_LIT> << Target << <STR_LIT> ) ; } * oldpv = ( long ) Target ;


<s> DEBUG ( errs ( ) << <STR_LIT> ) ; EmitBranchToAt ( CameFromStub , Target ) ; } else { DEBUG ( errs ( ) << <STR_LIT> << CameFromStub << <STR_LIT> << oldpv << <STR_LIT> << Target << <STR_LIT> ) ; }


<s> static void EmitBranchToAt ( void * At , void * To ) { unsigned long Fn = ( unsigned long ) To ; unsigned * AtI = ( unsigned * ) At ; AtI [ <NUM_LIT> ] = BUILD_OR ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; DEBUG ( errs ( ) << <STR_LIT> << To << <STR_LIT> ) ; for ( int x = <NUM_LIT> ; x <= <NUM_LIT> ; ++ x ) { AtI [ <NUM_LIT> * x - <NUM_LIT> ] = BUILD_SLLi ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; unsigned d = ( Fn >> ( <NUM_LIT> - <NUM_LIT> * x ) ) & <NUM_LIT> ; AtI [ <NUM_LIT> * x ] = BUILD_ORi ( <NUM_LIT> , <NUM_LIT> , d ) ; } AtI [ <NUM_LIT> ] = BUILD_JMP ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; AtI [ <NUM_LIT> ] = <NUM_LIT> ;


<s> unsigned * AtI = ( unsigned * ) At ; AtI [ <NUM_LIT> ] = BUILD_OR ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; DEBUG ( errs ( ) << <STR_LIT> << To << <STR_LIT> ) ;

for ( int x = <NUM_LIT> ; x <= <NUM_LIT> ; ++ x ) {


<s> StubLayout Result = { <NUM_LIT> * <NUM_LIT> , <NUM_LIT> } ;


<s> case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getUpper16 ( idx ) ; DEBUG ( errs ( ) << <STR_LIT> << idx << <STR_LIT> ) ; DEBUG ( errs ( ) << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ) ; break ; case <STR_LIT> : switch ( * RelocPos >> <NUM_LIT> ) { case <NUM_LIT> : idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) RelocPos ; idx = getUpper16 ( idx ) ; DEBUG ( errs ( ) << <STR_LIT> << idx << <STR_LIT> ) ; gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] = RelocPos ; break ; case <NUM_LIT> : assert ( gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] && <STR_LIT> ) ; idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] ; idx = getLower16 ( idx ) ; DEBUG ( errs ( ) << <STR_LIT> << idx << <STR_LIT> ) ; break ; default : llvm_unreachable ( <STR_LIT> ) ; } break ; case <STR_LIT> : { idx = ( ( ( unsigned char * ) MR -> getResultPointer ( ) - ( unsigned char * ) RelocPos ) >> <NUM_LIT> ) + <NUM_LIT> ; * RelocPos |= ( idx & ( ( <NUM_LIT> << <NUM_LIT> ) - <NUM_LIT> ) ) ; doCommon = false ; break ; } }


<s> void <ISA_LIT>CompilationCallback ( ) { cerr << <STR_LIT> ; abort ( ) ;


<s> idx = getLower16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; DOUT << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getUpper16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; DOUT << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> : switch ( * RelocPos >> <NUM_LIT> ) { case <NUM_LIT> : idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) RelocPos ; idx = getUpper16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] = RelocPos ; break ; case <NUM_LIT> : assert ( gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] && <STR_LIT> ) ; idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] ; idx = getLower16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; break ; default : assert ( <NUM_LIT> && <STR_LIT> ) ; } break ; case <STR_LIT> : { idx = ( ( ( unsigned char * ) MR -> getResultPointer ( ) - ( unsigned char * ) RelocPos ) >> <NUM_LIT> ) + <NUM_LIT> ; * RelocPos |= ( idx & ( ( <NUM_LIT> << <NUM_LIT> ) - <NUM_LIT> ) ) ; doCommon = false ; break ; } } if ( doCommon ) { short x = ( short ) idx ; assert ( x == idx ) ; * ( short * ) RelocPos = x ; }


<s> void <ISA_LIT>JITInfo :: replaceMachineCodeForFunction ( void * Old , void * New ) {


<s> for ( int x = <NUM_LIT> ; x < <NUM_LIT> ; ++ x ) MCE . emitWordLE ( <NUM_LIT> ) ; EmitBranchToAt ( Addr , Fn ) ; DOUT << <STR_LIT> << Fn << <STR_LIT> << Addr << <STR_LIT> ; return MCE . finishGVStub ( F ) ;


<s> EmitBranchToAt ( CameFromStub , Target ) ; } else {

DOUT ( llvm :: dbgs ( ) << <STR_LIT> << CameFromStub << <STR_LIT> << oldpv << <STR_LIT> << Target << <STR_LIT> ;


<s> if ( ( ( unsigned * ) CameFromStub ) [ <NUM_LIT> ] == <NUM_LIT> ) { DOUT ( llvm :: dbgs ( ) << <STR_LIT> ; EmitBranchToAt ( CameFromStub , Target ) ; } else { DOUT ( llvm :: dbgs ( ) << <STR_LIT> << CameFromStub << <STR_LIT> << oldpv << <STR_LIT> << Target << <STR_LIT> ; } * oldpv = ( long ) Target ;


<s> DOUT ( llvm :: dbgs ( ) << <STR_LIT> << To << <STR_LIT> ; for ( int x = <NUM_LIT> ; x <= <NUM_LIT> ; ++ x ) { AtI [ <NUM_LIT> * x - <NUM_LIT> ] = BUILD_SLLi ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; unsigned d = ( Fn >> ( <NUM_LIT> - <NUM_LIT> * x ) ) & <NUM_LIT> ; AtI [ <NUM_LIT> * x ] = BUILD_ORi ( <NUM_LIT> , <NUM_LIT> , d ) ; }


<s> static void EmitBranchToAt ( void * At , void * To ) { unsigned long Fn = ( unsigned long ) To ; unsigned * AtI = ( unsigned * ) At ; AtI [ <NUM_LIT> ] = BUILD_OR ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << To << <STR_LIT> ; for ( int x = <NUM_LIT> ; x <= <NUM_LIT> ; ++ x ) { AtI [ <NUM_LIT> * x - <NUM_LIT> ] = BUILD_SLLi ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ;

unsigned d = ( Fn >> ( <NUM_LIT> - <NUM_LIT> * x ) ) & <NUM_LIT> ;


<s> for ( int x = <NUM_LIT> ; x < <NUM_LIT> ; ++ x ) JCE . emitWordLE ( <NUM_LIT> ) ; EmitBranchToAt ( Addr , Fn ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << Fn << <STR_LIT> << Addr << <STR_LIT> ; return JCE . finishGVStub ( F ) ;


<s> void * Addr = ( void * ) ( intptr_t ) JCE . getCurrentPCValue ( ) ; for ( int x = <NUM_LIT> ; x < <NUM_LIT> ; ++ x ) JCE . emitWordLE ( <NUM_LIT> ) ;


<s> case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getLower16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getUpper16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> : switch ( * RelocPos >> <NUM_LIT> ) { case <NUM_LIT> : idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) RelocPos ; idx = getUpper16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] = RelocPos ; break ; case <NUM_LIT> : assert ( gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] && <STR_LIT> ) ; idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] ; idx = getLower16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; break ; default : llvm_unreachable ( <STR_LIT> ) ; } break ; case <STR_LIT> : { idx = ( ( ( unsigned char * ) MR -> getResultPointer ( ) - ( unsigned char * ) RelocPos ) >> <NUM_LIT> ) + <NUM_LIT> ; * RelocPos |= ( idx & ( ( <NUM_LIT> << <NUM_LIT> ) - <NUM_LIT> ) ) ; doCommon = false ; break ; }


<s> idx = getUpper16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] = RelocPos ; break ; case <NUM_LIT> : assert ( gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] && <STR_LIT> ) ; idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] ; idx = getLower16 ( idx ) ; DOUT ( llvm :: dbgs ( ) << <STR_LIT> << idx << <STR_LIT> ; break ; default : llvm_unreachable ( <STR_LIT> ) ; } break ; case <STR_LIT> : { idx = ( ( ( unsigned char * ) MR -> getResultPointer ( ) - ( unsigned char * ) RelocPos ) >> <NUM_LIT> ) + <NUM_LIT> ;

* RelocPos |= ( idx & ( ( <NUM_LIT> << <NUM_LIT> ) - <NUM_LIT> ) ) ;


<s> void <ISA_LIT>CompilationCallback ( ) { llvm_unreachable ( <STR_LIT> ) ;


<s> if ( ( ( unsigned * ) CameFromStub ) [ <NUM_LIT> ] == <NUM_LIT> ) { DOUT << <STR_LIT> ; EmitBranchToAt ( CameFromStub , Target ) ;


<s> void * Target = JITCompilerFunction ( CameFromStub ) ; if ( ( ( unsigned * ) CameFromStub ) [ <NUM_LIT> ] == <NUM_LIT> ) { DOUT << <STR_LIT> ; EmitBranchToAt ( CameFromStub , Target ) ; } else { DOUT << <STR_LIT> << CameFromStub << <STR_LIT> << oldpv << <STR_LIT> << Target << <STR_LIT> ; } * oldpv = ( long ) Target ;


<s> explicit <ISA_LIT>JITInfo ( TargetMachine & tm ) : TM ( tm ) { useGOT = true ;


<s> unsigned long Fn = ( unsigned long ) To ; unsigned * AtI = ( unsigned * ) At ; AtI [ <NUM_LIT> ] = BUILD_OR ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; DOUT << <STR_LIT> << To << <STR_LIT> ; for ( int x = <NUM_LIT> ; x <= <NUM_LIT> ; ++ x ) { AtI [ <NUM_LIT> * x - <NUM_LIT> ] = BUILD_SLLi ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ; unsigned d = ( Fn >> ( <NUM_LIT> - <NUM_LIT> * x ) ) & <NUM_LIT> ; AtI [ <NUM_LIT> * x ] = BUILD_ORi ( <NUM_LIT> , <NUM_LIT> , d ) ; }


<s> void * <ISA_LIT>JITInfo :: emitFunctionStub ( const Function * F , void * Fn , JITCodeEmitter & JCE ) { JCE . startGVStub ( F , <NUM_LIT> * <NUM_LIT> ) ; void * Addr = ( void * ) ( intptr_t ) JCE . getCurrentPCValue ( ) ; for ( int x = <NUM_LIT> ; x < <NUM_LIT> ; ++ x ) JCE . emitWordLE ( <NUM_LIT> ) ; EmitBranchToAt ( Addr , Fn ) ;

DOUT << <STR_LIT> << Fn << <STR_LIT> << Addr << <STR_LIT> ;


<s> void * Addr = ( void * ) ( intptr_t ) JCE . getCurrentPCValue ( ) ; for ( int x = <NUM_LIT> ; x < <NUM_LIT> ; ++ x ) JCE . emitWordLE ( <NUM_LIT> ) ; EmitBranchToAt ( Addr , Fn ) ; DOUT << <STR_LIT> << Fn << <STR_LIT> << Addr << <STR_LIT> ; return JCE . finishGVStub ( F ) ;


<s> TargetJITInfo :: LazyResolverFn <ISA_LIT>JITInfo :: getLazyResolverFunction ( JITCompilerFn F ) {


<s> long y = l - h * IMM_MULT ; assert ( y == ( short ) y && <STR_LIT> ) ; return y ;


<s> long y = l / IMM_MULT ; if ( l % IMM_MULT > IMM_HIGH ) ++ y ; if ( l % IMM_MULT < IMM_LOW ) -- y ;

assert ( ( short ) y == y && <STR_LIT> ) ;


<s> case <STR_LIT> : switch ( * RelocPos >> <NUM_LIT> ) { case <NUM_LIT> : idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) RelocPos ; idx = getUpper16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] = RelocPos ; break ; case <NUM_LIT> : assert ( gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] && <STR_LIT> ) ; idx = & GOTBase [ GOToffset * <NUM_LIT> ] - ( unsigned char * ) gpdistmap [ std :: make_pair ( Function , MR -> getConstantVal ( ) ) ] ; idx = getLower16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; break ; default : llvm_unreachable ( <STR_LIT> ) ; } break ; case <STR_LIT> : { idx = ( ( ( unsigned char * ) MR -> getResultPointer ( ) - ( unsigned char * ) RelocPos ) >> <NUM_LIT> ) + <NUM_LIT> ; * RelocPos |= ( idx & ( ( <NUM_LIT> << <NUM_LIT> ) - <NUM_LIT> ) ) ; doCommon = false ; break ; } } if ( doCommon ) { short x = ( short ) idx ; assert ( x == idx ) ; * ( short * ) RelocPos = x ; } }


<s> DOUT << <STR_LIT> << idx ; idx = ( idx - GOToffset ) * <NUM_LIT> ; DOUT << <STR_LIT> << idx << <STR_LIT> ; break ; case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getLower16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; DOUT << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> : idx = ( unsigned char * ) MR -> getResultPointer ( ) - & GOTBase [ GOToffset * <NUM_LIT> ] ; idx = getUpper16 ( idx ) ; DOUT << <STR_LIT> << idx << <STR_LIT> ; DOUT << <STR_LIT> << ( void * ) MR -> getResultPointer ( ) << <STR_LIT> << ( void * ) & GOTBase [ GOToffset * <NUM_LIT> ] << <STR_LIT> ; break ; case <STR_LIT> :


<s> void <ISA_LIT>JITInfo :: replaceMachineCodeForFunction ( void * Old , void * New ) { llvm_unreachable ( <NUM_LIT> ) ;


<s> <ISA_LIT>LLRPPass ( <ISA_LIT>TargetMachine & tm ) : MachineFunctionPass ( & ID ) , TM ( tm ) {


<s> <ISA_LIT>LLRPPass ( <ISA_LIT>TargetMachine & tm ) : MachineFunctionPass ( ID ) , TM ( tm ) {


<s> case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : case <STR_LIT> : if ( MI -> getOperand ( <NUM_LIT> ) . getReg ( ) == <STR_LIT> ) { if ( prev [ <NUM_LIT> ] && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getReg ( ) == MI -> getOperand ( <NUM_LIT> ) . getReg ( ) && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getImm ( ) == MI -> getOperand ( <NUM_LIT> ) . getImm ( ) ) { prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] ; prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] ; prev [ <NUM_LIT> ] = <NUM_LIT> ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; Changed = true ; nopintro += <NUM_LIT> ; count += <NUM_LIT> ; } else if ( prev [ <NUM_LIT> ] && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getReg ( ) == MI -> getOperand ( <NUM_LIT> ) . getReg ( ) && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getImm ( ) == MI -> getOperand ( <NUM_LIT> ) . getImm ( ) ) { prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] ; prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] = <NUM_LIT> ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; Changed = true ; nopintro += <NUM_LIT> ; count += <NUM_LIT> ; } else if ( prev [ <NUM_LIT> ] && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getReg ( ) == MI -> getOperand ( <NUM_LIT> ) . getReg ( ) && prev [ <NUM_LIT> ] -> getOperand ( <NUM_LIT> ) . getImm ( ) == MI -> getOperand ( <NUM_LIT> ) . getImm ( ) ) { prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] = prev [ <NUM_LIT> ] = <NUM_LIT> ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MI , dl , TII -> get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; Changed = true ; nopintro += <NUM_LIT> ;


<s> explicit <ISA_LIT>MachineFunctionInfo ( MachineFunction & MF ) : GlobalBaseReg ( <NUM_LIT> ) , GlobalRetAddr ( <NUM_LIT> ) {


<s> unsigned getGlobalBaseReg ( ) const {


<s> unsigned getGlobalRetAddr ( ) const { return GlobalRetAddr ;


<s> void setGlobalBaseReg ( unsigned Reg ) { GlobalBaseReg = Reg ;


<s> void setGlobalRetAddr ( unsigned Reg ) {


<s> PrivateGlobalPrefix = <STR_LIT> ; GPRel32Directive = <STR_LIT> ; WeakRefDirective = <STR_LIT> ; HasSetDirective = false ;


<s> X -> InitMCCodeGenInfo ( Reloc :: PIC_ , CM ) ;


<s> TargetRegistry :: RegisterMCInstrInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCInstrInfo ) ;

TargetRegistry :: RegisterMCRegInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCRegisterInfo ) ;


<s> TargetRegistry :: RegisterMCRegInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCRegisterInfo ) ;

TargetRegistry :: RegisterMCSubtargetInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCSubtargetInfo ) ;


<s> X -> InitMCCodeGenInfo ( Reloc :: PIC_ ) ; return X ;


<s> MCInstrInfo * X = new MCInstrInfo ( ) ; Init<ISA_LIT>MCInstrInfo ( X ) ; return X ;


<s> static MCRegisterInfo * create<ISA_LIT>MCRegisterInfo ( StringRef TT ) { MCRegisterInfo * X = new MCRegisterInfo ( ) ; Init<ISA_LIT>MCRegisterInfo ( X , <STR_LIT> ) ; return X ;


<s> MCSubtargetInfo * X = new MCSubtargetInfo ( ) ; Init<ISA_LIT>MCSubtargetInfo ( X , TT , CPU , FS ) ; return X ;


<s> RegisterMCAsmInfo < <ISA_LIT>MCAsmInfo > X ( The<ISA_LIT>Target ) ;


<s> void LLVMInitialize<ISA_LIT>MCCodeGenInfo ( ) {

TargetRegistry :: RegisterMCCodeGenInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCCodeGenInfo ) ;


<s> void LLVMInitialize<ISA_LIT>MCInstrInfo ( ) { TargetRegistry :: RegisterMCInstrInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCInstrInfo ) ;


<s> void LLVMInitialize<ISA_LIT>MCSubtargetInfo ( ) { TargetRegistry :: RegisterMCSubtargetInfo ( The<ISA_LIT>Target , create<ISA_LIT>MCSubtargetInfo ) ;


<s> void LLVMInitialize<ISA_LIT>MCSubtargetInfo ( ) {


<s> long NumBytes = MFI -> getStackSize ( ) ; if ( FP ) NumBytes += <NUM_LIT> ; if ( NumBytes == <NUM_LIT> ) return ; unsigned Align = MF . getTarget ( ) . getFrameInfo ( ) -> getStackAlignment ( ) ; NumBytes = ( NumBytes + Align - <NUM_LIT> ) / Align * Align ; MFI -> setStackSize ( NumBytes ) ; NumBytes = - NumBytes ; 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> ) ;


<s> <ISA_LIT>RegisterInfo :: <ISA_LIT>RegisterInfo ( const TargetInstrInfo & tii ) : <ISA_LIT>GenRegisterInfo ( <STR_LIT> , <STR_LIT> ) , TII ( tii ) {


<s> 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 ) { 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> ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( getLower16 ( NumBytes ) ) . addReg ( <STR_LIT> ) ; } else { cerr << <STR_LIT> << NumBytes << <STR_LIT> ;


<s> int <ISA_LIT>RegisterInfo :: getDwarfRegNum ( unsigned RegNum , bool isEH ) const { assert ( <NUM_LIT> && <STR_LIT> ) ; return - <NUM_LIT> ;


<s> unsigned <ISA_LIT>RegisterInfo :: getEHExceptionRegister ( ) const { assert ( <NUM_LIT> && <STR_LIT> ) ; return <NUM_LIT> ;


<s> unsigned <ISA_LIT>RegisterInfo :: getEHHandlerRegister ( ) const { assert ( <NUM_LIT> && <STR_LIT> ) ;


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


<s> 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> ) ;


<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 ) ; 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 > <STR_LIT> || Offset < <STR_LIT> ) { DEBUG ( errs ( ) << <STR_LIT> << Offset << <STR_LIT> ) ; MI . getOperand ( i + <NUM_LIT> ) . ChangeToRegister ( <STR_LIT> , false ) ; MI . getOperand ( i ) . ChangeToImmediate ( getLower16 ( Offset ) ) ;

MachineInstr * nMI = BuildMI ( MF , MI . getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( getUpper16 ( Offset ) ) . addReg ( FP ? <STR_LIT> : <STR_LIT> ) ;


<s> const TargetFrameInfo * TFI = MF . getTarget ( ) . getFrameInfo ( ) ;

return TFI -> hasFP ( MF ) ? <STR_LIT> : <STR_LIT> ;


<s> unsigned <ISA_LIT>RegisterInfo :: getFrameRegister ( const MachineFunction & MF ) const { const TargetFrameInfo * TFI = MF . getTarget ( ) . getFrameInfo ( ) ;


<s> void <ISA_LIT>RegisterInfo :: emitPrologue ( MachineFunction & MF ) const { MachineBasicBlock & MBB = MF . front ( ) ; MachineBasicBlock :: iterator MBBI = MBB . begin ( ) ; MachineFrameInfo * MFI = MF . getFrameInfo ( ) ; DebugLoc dl = ( MBBI != MBB . end ( ) ? MBBI -> getDebugLoc ( ) : DebugLoc :: getUnknownLoc ( ) ) ; 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 -> getStackSize ( ) ; if ( FP ) NumBytes += <NUM_LIT> ; if ( NumBytes == <NUM_LIT> ) return ; unsigned Align = MF . getTarget ( ) . getFrameInfo ( ) -> getStackAlignment ( ) ; NumBytes = ( NumBytes + Align - <NUM_LIT> ) / Align * Align ;


<s> llvm_unreachable ( <STR_LIT> ) ; return <NUM_LIT> ;


<s> assert ( SPAdj == <NUM_LIT> && <STR_LIT> ) ; unsigned i = <NUM_LIT> ; MachineInstr & MI = * II ; 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 ) ;


<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> ) {


<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 ) {


<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 ( <NUM_LIT> ) . addReg ( <STR_LIT> ) ;


<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> << Offset << <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> ) ;


<s> 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 > <STR_LIT> || Offset < <STR_LIT> ) { DEBUG ( errs ( ) << <STR_LIT> << Offset << <STR_LIT> ) ; MI . getOperand ( i + <NUM_LIT> ) . ChangeToRegister ( <STR_LIT> , false ) ; MI . getOperand ( i ) . ChangeToImmediate ( getLower16 ( Offset ) ) ; MachineInstr * nMI = BuildMI ( MF , MI . getDebugLoc ( ) , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( getUpper16 ( Offset ) ) . addReg ( FP ? <STR_LIT> : <STR_LIT> ) ; MBB . insert ( II , nMI ) ; } else { MI . getOperand ( i ) . ChangeToImmediate ( Offset ) ; }


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


<s> <ISA_LIT>RegisterInfo :: <ISA_LIT>RegisterInfo ( const TargetInstrInfo & tii ) : <ISA_LIT>GenRegisterInfo ( <STR_LIT> ) , TII ( tii ) {


<s> std :: string s ( <ISA_LIT>RegDesc [ reg ] . Name ) ; return s ;


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


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


<s> <ISA_LIT>RegisterInfo :: <ISA_LIT>RegisterInfo ( const TargetInstrInfo & tii ) : <ISA_LIT>GenRegisterInfo ( <STR_LIT> , <STR_LIT> ) , TII ( tii ) , curgpdist ( <NUM_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> ) ; }


<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 ) ; } }


<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 ) ;


<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 << <STR_LIT> ) ;


<s> MachineBasicBlock :: iterator MBBI = prior ( MBB . end ( ) ) ; assert ( ( MBBI -> getOpcode ( ) == <STR_LIT> || MBBI -> getOpcode ( ) == <STR_LIT> ) && <STR_LIT> ) ; 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> ) ;


<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 -> getStackSize ( ) ;


<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> } ;


<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 , bool isEH ) const {


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


<s> llvm_unreachable ( <STR_LIT> ) ; return <NUM_LIT> ;


<s> unsigned <ISA_LIT>RegisterInfo :: getEHHandlerRegister ( ) const { llvm_unreachable ( <STR_LIT> ) ; return <NUM_LIT> ;


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

return hasFP ( MF ) ? <STR_LIT> : <STR_LIT> ;


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


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


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


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


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


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


<s> const MachineFrameInfo * MFI = MF . getFrameInfo ( ) ; return MFI -> hasVarSizedObjects ( ) ;


<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 ) {


<s> bool hasCT ( ) const { return HasCT ;


<s> RegisterTarget < Triple :: alpha , true > X ( The<ISA_LIT>Target , <STR_LIT> , <STR_LIT> ) ;


<s> void LLVMInitialize<ISA_LIT>TargetInfo ( ) { RegisterTarget < Triple :: alpha , true > X ( The<ISA_LIT>Target , <STR_LIT> , <STR_LIT> ) ;


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


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


<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 ) {


<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 :: PIC_ ) ;


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


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


<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 ) {


<s> return const_cast < <ISA_LIT>TargetLowering * > ( & TLInfo ) ;


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

RegisterAsmInfo < <ISA_LIT>MCAsmInfo > Y ( The<ISA_LIT>Target ) ;


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


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


<s> bool <ISA_LIT>TargetMachine :: addPreEmitPass ( PassManagerBase & PM , CodeGenOpt :: Level OptLevel ) { PM . add ( create<ISA_LIT>BranchSelectionPass ( ) ) ; return false ;


<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 ) {


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


<s> return <NUM_LIT> ; return <NUM_LIT> ;


<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 <NUM_LIT> ;


<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 ) {


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


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


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


<s> bool <ISA_LIT>TargetMachine :: addPreEmitPass ( PassManagerBase & PM , bool Fast ) { PM . add ( create<ISA_LIT>BranchSelectionPass ( ) ) ; return false ;


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , StringRef TT , StringRef CPU , StringRef FS , Reloc :: Model RM , CodeModel :: Model CM ) : LLVMTargetMachine ( T , TT , CPU , FS , RM , CM ) , DataLayout ( <STR_LIT> ) , FrameLowering ( Subtarget ) , Subtarget ( TT , CPU , FS ) , TLInfo ( * this ) , TSInfo ( * this ) {


<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 :: PIC_ ) ;


<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 ) {


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


<s> bool <ISA_LIT>TargetMachine :: addInstSelector ( PassManagerBase & PM , CodeGenOpt :: Level OptLevel ) {

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


<s> bool <ISA_LIT>TargetMachine :: addPreEmitPass ( PassManagerBase & PM , CodeGenOpt :: Level OptLevel ) { PM . add ( create<ISA_LIT>BranchSelectionPass ( ) ) ; PM . add ( create<ISA_LIT>LLRPPass ( * this ) ) ; return false ;


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


<s> <ISA_LIT>TargetMachine :: <ISA_LIT>TargetMachine ( const Target & T , StringRef TT , StringRef CPU , StringRef FS , Reloc :: Model RM ) : LLVMTargetMachine ( T , TT , CPU , FS , RM ) , DataLayout ( <STR_LIT> ) , FrameLowering ( Subtarget ) , Subtarget ( TT , CPU , FS ) , TLInfo ( * this ) , TSInfo ( * this ) {


<s> virtual const TargetFrameLowering * getFrameLowering ( ) const {


<s> virtual const <ISA_LIT>InstrInfo * getInstrInfo ( ) const { return & InstrInfo ;


<s> return & InstrInfo . getRegisterInfo ( ) ;


<s> virtual const <ISA_LIT>Subtarget * getSubtargetImpl ( ) const { return & Subtarget ;


<s> virtual const TargetData * getTargetData ( ) const {


<s> void LLVMInitialize<ISA_LIT>Target ( ) {

RegisterTargetMachine < <ISA_LIT>TargetMachine > X ( The<ISA_LIT>Target ) ;