void gen_PROGRAM ( node_t *root, int scopedepth) { /* Output the data segment */ if( outputStage == 12 ) strings_output ( stderr ); instruction_add ( STRING, STRDUP( ".text" ), NULL, 0, 0 ); tracePrint("Starting PROGRAM\n"); gen_default(root, scopedepth);//RECUR(); TEXT_DEBUG_FUNC_ARM(); TEXT_HEAD_ARM(); gp(root,scopedepth); tracePrint("End PROGRAM\n"); TEXT_TAIL_ARM(); if( outputStage == 12 ) instructions_print ( stderr ); instructions_finalize (); }
void gen_PROGRAM ( node_t *root, int scopedepth) { /* Output the data segment */ if( outputStage == 12 ) strings_output ( stderr ); instruction_add ( STRING, STRDUP( ".text" ), NULL, 0, 0 ); tracePrint("Starting PROGRAM\n"); gen_default(root, scopedepth);//RECUR(); TEXT_DEBUG_FUNC_ARM(); TEXT_HEAD_ARM(); /* Call the first defined function */ int last_child = root->n_children - 1; if (root->children[last_child] != NULL) { char *func_label = root->children[last_child]->children[0]->function_entry->label; instruction_add( CALL, STRDUP(func_label), NULL, 0, 0); } tracePrint("End PROGRAM\n"); TEXT_TAIL_ARM(); if( outputStage == 12 ) instructions_print ( stderr ); instructions_finalize (); }