summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cginstructions.c7
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;