[comp.unix.ultrix] VAX Assembler trivia: "Caution: New Opcodes"

scc@cl.cam.ac.uk (Stephen Crawley) (07/12/89)

This evening while recompiling an Ultrix 2.2 kernel, the assembler
emitted the following peculiar message for if_ne.c

  Caution: New Opcodes.
  These are not defined for all implementations of the VAX architecture

It turns out that if_ne.c calls functions that are inlined to give the
interlocked queue instructions (insqhi, insqti, remqhi & remqti).
These 4 instructions are labelled in src/bin/as/instrs as NEW.
But my copy of the VAX architecture manual says that the queue
instructions are part of the kernel subset of the VAX instruction set; 
all VAX implementations are supposed to provide these instructions.

Does anyone know if there ever was a member of the VAX architecture 
family that did not implement the interlocked queue instructions?

-- Steve

p.s.	This "New Opcodes" buggette exists in both the Ultrix 2.2
	and 3.0 versions of the assembler.  Not that it makes any
	difference of course.

mccartne@cause.Berkeley.EDU (James T. McCartney) (09/26/89)

The REMQxI and INSQxI instructions were added to the VAX architecture back in October 1978 and thus
they are new (relatively speeking). The only VAXes being built at that time were 780s and they had a 
loadable microcontrol store. So unless you have a really old VAX which has never been ECOed and it's
running software that time forgot, the INSQxI and REMQxI instructions are there. No current day VAX