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: C++ ICE with ntohs() and -mcpu=pentiumpro


On Sun, Mar 19, 2000 at 11:53:17AM -0800, Mark Mitchell wrote:
>   o The `asm' creates a temporary for the output with this code in 
>     `stmt.c':
> 
> 	  output_rtx[i] = assign_temp (type, 0, 0, 0);
> 	  TREE_VALUE (tail) = make_tree (type, output_rtx[i]);
> 
>     Here, TYPE is `unsigned short', but assign_temp gives back an
>     SImode register, due to the PROMOTE_MODE change.
[...]
>    Now, we try to:
> 
> 	      emit_move_insn (memloc, op0);
> 
>    to copy the SImode output of the RTL_EXPR into the HImode
>    temporary, and abort.
> 
> It seems to me that the correct change is to not promote the temporary
> outputs of the asm statement.

I agree.

Shall you make the change or shall I?  In addition to a bootstrap,
which doesn't make much use of asms, one should probably build a
linux kernel or something.

Ben, this is incidentally the same problem you ran into on the alpha.


r~

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