From e6db5f5fb670598cc6dc9750537c1df39fa4e527 Mon Sep 17 00:00:00 2001
From: Shinichiro Hamaji <shinichiro.hamaji _at_ gmail.com>
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;