void backend_init() { //printf("out_config_init()\n"); Param *params = &global.params; bool exe; #if TARGET_WINDOS exe = false; if (params->dll) ; else if (params->run) exe = true; // EXE file only optimizations else if (params->link && !global.params.deffile) exe = true; // EXE file only optimizations else if (params->exefile) // if writing out EXE file { size_t len = strlen(params->exefile); if (len >= 4 && stricmp(params->exefile + len - 3, "exe") == 0) exe = true; } #endif #if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_OPENBSD || TARGET_SOLARIS exe = params->pic == 0; #endif out_config_init( params->is64bit ? 64 : 32, exe, false, //params->trace, params->nofloat, params->verbose, params->optimize, params->symdebug, params->alwaysframe, params->stackstomp ); #ifdef DEBUG out_config_debug( params->debugb, params->debugc, params->debugf, params->debugr, params->debugw, params->debugx, params->debugy ); #endif }
void obj_start(char *srcfile) { //printf("obj_start()\n"); out_config_init(); rtlsym_reset(); slist_reset(); clearStringTab(); obj_init(&objbuf, srcfile, NULL); el_reset(); cg87_reset(); out_reset(); }
void backend_init() { ph_init(); block_init(); type_init(); if (global.params.is64bit) { util_set64(); cod3_set64(); } else { util_set32(); cod3_set32(); } rtlsym_init(); // uses fregsaved, so must be after it's set inside cod3_set* out_config_init(); }