From e6db5f5fb670598cc6dc9750537c1df39fa4e527 Mon Sep 17 00:00:00 2001 From: Shinichiro Hamaji Date: Thu, 2 Apr 2009 01:46:44 +0900 Subject: [PATCH] x86-64 bug fix: Use stack with alignment just like 32bit environments. --- tcc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tcc.c b/tcc.c index f707791c..2ba115d4 100644 --- a/tcc.c +++ b/tcc.c @@ -4802,13 +4802,12 @@ void save_reg(int r) r = p->r & VT_VALMASK; /* store register in the stack */ type = &p->type; -#ifndef TCC_TARGET_X86_64 - if ((p->r & VT_LVAL) || + if ((p->r & VT_LVAL) || (!is_float(type->t) && (type->t & VT_BTYPE) != VT_LLONG)) - type = &int_type; -#else - if (p->r & VT_LVAL) +#ifdef TCC_TARGET_X86_64 type = &char_pointer_type; +#else + type = &int_type; #endif size = type_size(type, &align); loc = (loc - size) & -align; -- 2.11.4.GIT