diff options
author | John van Groningen | 2007-06-27 11:57:19 +0000 |
---|---|---|
committer | John van Groningen | 2007-06-27 11:57:19 +0000 |
commit | ed0bcfda0c539ff27a3924216111507e3f556a5d (patch) | |
tree | 26df4f245c645b8a6eab4033cfb8d62a51207aa4 | |
parent | move code for saving and restoring registers to new functions (diff) |
fix passing floating point arguments in centry for win64
-rw-r--r-- | cginstructions.c | 7 |
1 files 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; |