NonStop S-Series Server Description Manual (G06.24+)
TNS Instruction Set Definition
HP NonStop S-Series Server Description Manual—520331-003
C-17
Instruction Definitions
0 0 0 0 7 6* PSEM "P" a semaphore
 DC=wait time
 BA=semaphore extended absolute address
 'Indivisible On';
 xmem[BA+4]:=xmem[BA+4]-1;
 if xmem[BA+4] < 0 then
 {$R[4] := DC;
 $R[5] := BA;
 siv[15].parm1_lo:=siv[15].parm1_lo | 5;
 set dispatcher interrupt;
 'Indivisible Off';
 D := $R[3].<16:31>; ! $V0
 }
 else
 {D:=1;
 xmem[BA+6]:=CPCB
 'Indivisible Off';
 };
 RP:=RP-3
0 0 0 0 7 7* VSEM "V" a semaphore
 BA=semaphore extended absolute address
 'Indivisible On';
 xmem[BA+4]:=xmem[BA+4]+1;
 if xmem[BA+4] <= 0 then
 {set dispatcher interrupt;
 siv[15].parm1_lo.<12>:=1
 $R[4] := BA;
 }
 else
 xmem[BA+6]:=0;
 'Indivisible Off';
 RP:=RP-2
0 0 0 1 0 reg STRP set RP
 RP:=reg
0 0 0 1 1 reg STAR store A in reg
 R[reg]:=A; RP:=RP-1
0 0 0 1 2 reg NSAR nondestructive store A in reg
 R[reg]:=A
0 0 0 1 3 reg LDRA load register to A
 RP:=RP+1; cc(A:=R[reg])
0 0 0 1 4 reg ADRA add register to A
 ccn(A:=A+R[reg])
0 0 0 1 5 reg SBRA subtract register from A
 ccn(A:=A-R[reg])
0 0 0 1 6 reg ADAR add A to register
 ccn(R[reg]:=R[reg]+A);
 RP:=RP-1
0 0 0 1 7 reg SBAR subtract A from register
 ccn(R[reg]:=R[reg]-A);
 RP:=RP-1
0 0 0 2 0 0  LADD logical add
 ccl(B:=B+A); RP:=RP-1
0 0 0 2 0 1  LSUB logical subtract
 ccl(B:=B-A); RP:=RP-1
Table C-2. Instruction Definitions (page 7 of 38)










