This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Inlining bug on MIPS - both 2.95.3 and 3.0 branches


> Date: Sat, 10 Mar 2001 20:51:06 -0500
> From: Daniel Jacobowitz <dmj+@andrew.cmu.edu>
> Cc: gcc-bugs@gcc.gnu.org

> I see, thanks.  Although I'm mystified by how the # and * don't cancel
> out - according to the documentation, # means "only used for register
> preferences" and * means "ignored for register preferences".

If you only use a '*X' for register preferences, you don't use it at
all...

> These do still require that I use a macro rather than an inline
> function, from what I can see, though.  If I use the "i#*X" constraint
> inside the inline function, the compiler seems to first decide to
> prefer a register (before inlining?), and then attempt to satisfy the
> constraints when inlining.  This fails, obviously:
> 
> mips-vgacon.c: In function `vga_pal_blank':
> mips-vgacon.c:10: inconsistent operand constraints in an `asm'
> 
> So unless there's something I'm missing about constraints, there is no
> way to say what I want to say here, and I need to use a macro.

Aah, I see.  Reload is not determining that the register is always
equal to a constant.  Oh well.

-- 
- Geoffrey Keating <geoffk@geoffk.org>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]