From ab4a4ab25e474dca8a84a8c43f923ba750b0b9c9 Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 17 Dec 2009 21:09:53 +0100 Subject: [PATCH] x86-64: in gv(): ignore second register --- tccgen.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tccgen.c b/tccgen.c index 2a03fb6..3c45646 100644 --- a/tccgen.c +++ b/tccgen.c @@ -448,11 +448,14 @@ int gv(int rc) - constant - lvalue (need to dereference pointer) - already a register, but not in the right class */ - if (r >= VT_CONST || - (vtop->r & VT_LVAL) || - !(reg_classes[r] & rc) || - ((vtop->type.t & VT_BTYPE) == VT_LLONG && - !(reg_classes[vtop->r2] & rc2))) { + if (r >= VT_CONST + || (vtop->r & VT_LVAL) + || !(reg_classes[r] & rc) +#ifndef TCC_TARGET_X86_64 + || ((vtop->type.t & VT_BTYPE) == VT_LLONG && !(reg_classes[vtop->r2] & rc2)) +#endif + ) + { r = get_reg(rc); #ifndef TCC_TARGET_X86_64 if ((vtop->type.t & VT_BTYPE) == VT_LLONG) {