an BGInteger( signed_32 value, type_def *tipe ) /**************************************************/ { float_handle cf; if( tipe->attr & TYPE_SIGNED ) { cf = CFCnvI32F( value ); } else { cf = CFCnvU32F( value ); } return( MakeConst( cf, tipe ) ); }
extern void AdjustConsts( type_length size ) { /************************************************* There were some instructions left in HeadBlock of the form MOV const => temp, to be used to get access to parms/autos that aren't addressable with a register +- 4K. Once we have figured out exactly where all our temporaries are going to be, we know what to set these constants to. */ name *cons; for( cons = Names[ N_CONSTANT ]; cons != NULL; cons = cons->n.next_name ) { if( cons->c.const_type == CONS_OFFSET ) { cons->c.const_type = CONS_ABSOLUTE; cons->c.int_value *= _4K; cons->c.int_value += size; cons->c.value = CFCnvU32F( cons->c.int_value ); } } }
instruction *MoveConst( unsigned_32 value, name *result, type_class_def type_class ) /**********************************************************************************/ { return( MakeMove( AllocConst( CFCnvU32F( value ) ), result, type_class ) ); }