[M3devel] alpha32 atomic exchange char/widechar?
Jay K
jay.krell at cornell.edu
Sun Apr 25 15:26:43 CEST 2010
aha, gcc 4.3 hits the same assertion failure with -O1 or -O2.
I should have noticed that earlier.
- Jay
----------------------------------------
> From: jay.krell at cornell.edu
> To: m3devel at elegosoft.com
> Subject: alpha32 atomic exchange char/widechar?
> Date: Sun, 25 Apr 2010 00:00:57 +0000
>
>
> 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