C++ ICE with ntohs() and -mcpu=pentiumpro
Richard Henderson
rth@twiddle.net
Wed Mar 22 00:37:00 GMT 2000
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~
More information about the Gcc-bugs
mailing list