[M3devel] alpha32 atomic exchange char/widechar?
Jay K
jay.krell at cornell.edu
Sun Apr 25 02:00:57 CEST 2010
Tony, any idea why on Alpha32 atomic exchange of char/widechar would hit assertion failures in the compiler?
It works on Alpha64, and it works on Alpha32 from C (gcc 4.3.0)
So it isn't for lacking the necessary instructions.
It works with ev4 or ev6, just more efficiently with ev6.
I edited Atomic.mg to just:
(* Copyright (C) 1989, Digital Equipment Corporation *)
(* All rights reserved. *)
(* See the file COPYRIGHT for a full description. *)
GENERIC MODULE Atomic(Rep, Impl);
PROCEDURE Swap (VAR var: T; val: Rep.T; order: Order): Rep.T =
BEGIN
RETURN Impl.Swap (var, val, Order.Sequential);
END Swap;
BEGIN
END Atomic.
and then I get:
../ALPHA32_VMS/AtomicChar.m3 => ../src/atomic/Atomic.mg:9: internal compiler error: in emit_move_insn, at expr.c:3379
../ALPHA32_VMS/AtomicWideChar.m3 => ../src/atomic/Atomic.mg: In function 'AtomicWideChar__Swap':
../ALPHA32_VMS/AtomicWideChar.m3 => ../src/atomic/Atomic.mg:9: internal compiler error: in emit_move_insn, at expr.c:3379
Please submit a full bug report,
rtx
emit_move_insn (rtx x, rtx y)
{
enum machine_mode mode = GET_MODE (x);
rtx y_cst = NULL_RTX;
rtx last_insn, set;
gcc_assert (mode != BLKmode
&& (GET_MODE (y) == mode || GET_MODE (y) == VOIDmode));
I'll dig a bit.
- Jay
More information about the M3devel
mailing list