/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Instructions, REMQTI *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Purpose: Remove entry from queue at tail, interlocked Format: opcode header.aq,addr.wl Operation: if {removal succeded} then begin N <- 0; Z <- (header+4) EQL 0; ! Queue empty after removal V <- {queue empty before this instruction}; C <- 0; end; else begin N <- 0; Z <- 0; V <- 1; ! Did not remove anything C <- 1; ! Secondary interlock failed end; Exceptions: Reserved operand Opcode: 5F REMQTI Remove entry from queue at tail, interlocked Description: If the secondary interlock is clear, the queue entry preceding the header is removed from the queue and the address operand is replaced by the address of the entry removed. If the queue was empty prior to this instruction, or if the secondary interlock failed, the V-bit is set; otherwise it is cleared. If the interlock succeded and the queue is empty at the end of this instruction, the Z-bit is set; otherwise it is cleared. The removal is a noninterruptable operation. The entire operation is validated before any portion of it is attempted. The queue will be left in a consistent state if a memory management violation occurs.
|