From ed0bcfda0c539ff27a3924216111507e3f556a5d Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Wed, 27 Jun 2007 11:57:19 +0000 Subject: fix passing floating point arguments in centry for win64 --- cginstructions.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cginstructions.c b/cginstructions.c index 4a0a304..8e9e606 100644 --- a/cginstructions.c +++ b/cginstructions.c @@ -3828,10 +3828,9 @@ void code_ccall (char *c_function_name,char *s,int length) break; case 'R': b_o-=8; - if (c_fp_parameter_n<8){ - i_fmove_id_fr (b_o+c_offset_before_pushing_arguments,REGISTER_RBP,c_fp_parameter_n); - ++c_fp_parameter_n; - } else { + if (--c_parameter_n<4) + i_fmove_id_fr (b_o+c_offset_before_pushing_arguments,REGISTER_RBP,c_parameter_n); + else { i_move_id_r (b_o+c_offset_before_pushing_arguments,REGISTER_RBP,REGISTER_A0); i_move_r_pd (REGISTER_A0,B_STACK_POINTER); c_offset+=8; -- cgit v1.2.3