OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.target/] [sh/] [20080410-1.c] - Rev 325

Compare with Previous | Blame | View Log

/* { dg-do compile { target "sh-*-*" } } */
/* { dg-options "-O0 -m4 -ml" } */
/* { dg-final { scan-assembler-not "add\tr0,r0" } } */
 
/* This test checks that chain reloads conflict.  I they don't
   conflict, the same hard register R0 is used for the both reloads
   but in this case the second reload needs an intermediate register
   (which is the reload register).  As the result we have the
   following code
 
   	mov	#4,r0   -- first reload
	mov	r14,r0  -- second reload
	add	r0,r0   -- second reload
 
   The right code should be
 
   	mov	#4,r0   -- first reload
	mov	r14,r1  -- second reload
	add	r0,r1   -- second reload
 
*/
 
_Complex float foo_float ();
 
void bar_float ()
{
  __real foo_float ();
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.