That's a bit hard to diagnose without some further information ...

What insn it is failing on?  (To find out, use a debugger, or maybe
add a "debug_rtx (insn)" statement before the abort in
instantiate_virtual_regs_lossage)?

I did the latter.

C:\devel\gccnew\gcc>gccmvs -DUSE_MEMMGR -Os -S -ansi -pedantic-errors -DHAVE_CON
FIG_H -DIN_GCC -DPUREISO -I ../../pdos/pdpclib -I . -I config/i370 -I ../include
        varasm.c
(insn 117 429 118 7 (parallel [
           (set (reg:SI 64)
(compare:SI (mem/s:BLK (plus:SI (reg/f:SI 21 virtual-stack-vars)

                           (const_int 456 [0x1c8])) [232 value+0 S196 A64])
                   (mem:BLK (plus:SI (reg/v/f:SI 61 [ desc ])
                           (const_int 8 [0x8])) [0 A8])))
           (use (const_int 196 [0xc4]))
       ]) -1 (nil)
   (nil))
varasm.c: In function `force_const_mem':
varasm.c:3021: internal compiler error: in instantiate_virtual_regs_lossage, at
function.c:3767
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gccmvs.sourceforge.net> for instructions.


Which would seem to correspond to this:

; Compare a block that is less than 256 bytes in length.

(define_insn ""
 [(set (match_operand:SI 0 "register_operand" "=d")
^I(compare:SI (match_operand:BLK 1 "s_operand" "m")
^I^I (match_operand:BLK 2 "s_operand" "m")))
  (use (match_operand:QI 3 "immediate_operand" "I"))]
 "((unsigned) INTVAL (operands[3]) < 256)"
 "*
{
 check_label_emit ();
 mvs_check_page (0, 22, 0);
return \"CLC^I%O1(%c3,%R1),%2\;BH^I*+12\;BL^I*+6\;SLR^I%0,%0\;LNR^I%0,%0\";
}"
  [(set_attr "length" "22")]
)


This is conceivably another effect of the same bug, but again it's
hard to say.  You'd have to look at the generated RTX and see how
it changes over the various optimization stages (use -da to generate
RTX dumps after each stage).

Ok, I'll see if I can see something.  Probably easier for me to play
around with the md though.

BFN.  Paul.

Reply via email to