From 808e64fecbc0983c2771a3ef2f7ecd96c04fa4b8 Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Thu, 26 May 2016 13:59:18 +0000 Subject: fix push_r_arg_D instruction for MACH_O64 --- cgcode.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cgcode.c b/cgcode.c index 95f4761..59340fa 100644 --- a/cgcode.c +++ b/cgcode.c @@ -6220,17 +6220,21 @@ void code_push_r_arg_D (VOID) graph_1=s_pop_b(); graph_2=s_get_b (0); +#ifdef MACH_O64 + graph_1=g_and (g_load_i (-8),g_add (g_load_i (8-1),graph_1)); +#else graph_1=g_and (g_load_i (-4),g_add (g_load_i (4-1),graph_1)); +#endif #if defined (G_AI64) # if defined (MACH_O64) || defined (LINUX) -# ifdef LINUX +# ifndef MACH_O64 if (pic_flag) # endif { graph_1=g_add (g_lsl (g_load_i (3),graph_2),graph_1); graph_2=g_load_id (0,graph_1); } -# ifdef LINUX +# ifndef MACH_O64 else # endif # endif -- cgit v1.2.3