x86-64: in gv(): ignore second register

This commit is contained in:
grischka 2009-12-17 21:09:53 +01:00
parent d79b867d55
commit ab4a4ab25e

View File

@ -448,11 +448,14 @@ int gv(int rc)
- constant - constant
- lvalue (need to dereference pointer) - lvalue (need to dereference pointer)
- already a register, but not in the right class */ - already a register, but not in the right class */
if (r >= VT_CONST || if (r >= VT_CONST
(vtop->r & VT_LVAL) || || (vtop->r & VT_LVAL)
!(reg_classes[r] & rc) || || !(reg_classes[r] & rc)
((vtop->type.t & VT_BTYPE) == VT_LLONG && #ifndef TCC_TARGET_X86_64
!(reg_classes[vtop->r2] & rc2))) { || ((vtop->type.t & VT_BTYPE) == VT_LLONG && !(reg_classes[vtop->r2] & rc2))
#endif
)
{
r = get_reg(rc); r = get_reg(rc);
#ifndef TCC_TARGET_X86_64 #ifndef TCC_TARGET_X86_64
if ((vtop->type.t & VT_BTYPE) == VT_LLONG) { if ((vtop->type.t & VT_BTYPE) == VT_LLONG) {