diff options
Diffstat (limited to 'x86_64-gen.c')
| -rw-r--r-- | x86_64-gen.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/x86_64-gen.c b/x86_64-gen.c index 0067fdc..19d5dd7 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -1423,21 +1423,15 @@ void gfunc_prolog(CType *func_type) break; case x86_64_mode_integer: - if (seen_reg_num + reg_count <= 8) { - seen_reg_num += reg_count; - } else { - seen_reg_num = 8; - goto stack_arg; - } + if (seen_reg_num + reg_count > REGN) + goto stack_arg; + seen_reg_num += reg_count; break; case x86_64_mode_sse: - if (seen_sse_num + reg_count <= 8) { - seen_sse_num += reg_count; - } else { - seen_sse_num = 8; - goto stack_arg; - } + if (seen_sse_num + reg_count > 8) + goto stack_arg; + seen_sse_num += reg_count; break; } } |
