Commit 01ddefeb by Jakub Jelinek Committed by Jakub Jelinek

re PR target/48496 ('asm' operand requires impossible reload)

	PR rtl-optimization/48496
	* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.

From-SVN: r183301
parent ac1384b7
2012-01-19 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/48496
* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
2012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac (i?86-*-*): Set TARGET to X86_64. * configure.ac (i?86-*-*): Set TARGET to X86_64.
......
/* ----------------------------------------------------------------------- /* -----------------------------------------------------------------------
ffi.c - Copyright (c) 1998, 2007, 2008 Red Hat, Inc. ffi.c - Copyright (c) 1998, 2007, 2008, 2012 Red Hat, Inc.
Copyright (c) 2000 Hewlett Packard Company Copyright (c) 2000 Hewlett Packard Company
IA64 Foreign Function Interface IA64 Foreign Function Interface
...@@ -324,13 +324,17 @@ ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ...@@ -324,13 +324,17 @@ ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
case FFI_TYPE_FLOAT: case FFI_TYPE_FLOAT:
if (gpcount < 8 && fpcount < 8) if (gpcount < 8 && fpcount < 8)
stf_spill (&stack->fp_regs[fpcount++], *(float *)avalue[i]); stf_spill (&stack->fp_regs[fpcount++], *(float *)avalue[i]);
stack->gp_regs[gpcount++] = *(UINT32 *)avalue[i]; {
UINT32 tmp;
memcpy (&tmp, avalue[i], sizeof (UINT32));
stack->gp_regs[gpcount++] = tmp;
}
break; break;
case FFI_TYPE_DOUBLE: case FFI_TYPE_DOUBLE:
if (gpcount < 8 && fpcount < 8) if (gpcount < 8 && fpcount < 8)
stf_spill (&stack->fp_regs[fpcount++], *(double *)avalue[i]); stf_spill (&stack->fp_regs[fpcount++], *(double *)avalue[i]);
stack->gp_regs[gpcount++] = *(UINT64 *)avalue[i]; memcpy (&stack->gp_regs[gpcount++], avalue[i], sizeof (UINT64));
break; break;
case FFI_TYPE_LONGDOUBLE: case FFI_TYPE_LONGDOUBLE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment