This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: Internal compiler error building libstdc++ for vax


On Sun, 8 Apr 2018, Jeff Law wrote:

> I think you need to go back to my earlier reply and read it carefully.
> In particular, you need an insn where the label_ref and pc are swapped.

 Ouch, there are no reversed interlocked branch instructions in the VAX 
ISA, so these would have to branch around a jump.  Like say:

(define_insn "*jbbssisi_reversed"
  [(parallel
    [(set (pc)
	  (if_then_else
	    (ne (zero_extract:SI (match_operand:SI 0 "memory_operand" "Q")
				 (const_int 1)
				 (match_operand:SI 1 "general_operand" "nrm"))
		(const_int 0))
	    (pc))
	    (label_ref (match_operand 2 "" "")))
     (set (zero_extract:SI (match_operand:SI 3 "memory_operand" "+0")
			   (const_int 1)
			   (match_dup 1))
	  (const_int 1))])]
  ""
  "jbssi %1,%0,0f;jbr %l2;0:")

and likewise with the other modes.

 Is this what you have in mind?

  Maciej


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