From d1103719dc1fac80bfe1cca2396207bf0da4935f Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Fri, 24 Feb 2012 11:21:47 +0000 Subject: fix move register from/to label on Mac OS X --- cgawas.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'cgawas.c') diff --git a/cgawas.c b/cgawas.c index da5d5a0..6c89066 100644 --- a/cgawas.c +++ b/cgawas.c @@ -1102,14 +1102,15 @@ static void w_as_move_instruction (struct instruction *instruction,int size_flag return; case P_LABEL: w_as_opcode_movq(); - if (intel_asm){ + if (intel_asm) w_as_register_comma (instruction->instruction_parameters[1].parameter_data.reg.r); - fprintf (assembly_file,"offset "); - } if (instruction->instruction_parameters[0].parameter_data.l->label_number!=0) w_as_local_label (instruction->instruction_parameters[0].parameter_data.l->label_number); else w_as_label (instruction->instruction_parameters[0].parameter_data.l->label_name); +#ifdef MACH_O64 + fprintf (assembly_file,"%s",intel_asm ? "[rip]" : "(%rip)"); +#endif break; default: internal_error_in_function ("w_as_move_instruction"); @@ -1359,12 +1360,14 @@ static void w_as_move_instruction (struct instruction *instruction,int size_flag w_as_opcode_movq(); if (!intel_asm){ w_as_register_comma (instruction->instruction_parameters[0].parameter_data.reg.r); - fprintf (assembly_file,"offset "); } if (instruction->instruction_parameters[1].parameter_data.l->label_number!=0) w_as_local_label (instruction->instruction_parameters[1].parameter_data.l->label_number); else w_as_label (instruction->instruction_parameters[1].parameter_data.l->label_name); +#ifdef MACH_O64 + fprintf (assembly_file,"%s",intel_asm ? "[rip]" : "(%rip)"); +#endif if (intel_asm) w_as_comma_register (instruction->instruction_parameters[0].parameter_data.reg.r); w_as_newline(); -- cgit v1.2.3