NonStop S-Series Server Description Manual (G06.27+)
TNS Instruction Set Definition
HP NonStop S-Series Server Description Manual—520331-004
C-46
Instruction Definitions
1 2 7 - - - XCAL external call
stack[Sx+2:Sx+6]:=(Px.<15:30>
,(ENV & %177740) | CSPACEID
,Lx.<15:30>);
! calculate CCSEG segment size
@vSEG := CPDST[ (xa :=CCSEG[csegx] ).<1:6> ];
@page := vSEG[ xa.<7:14> ];
i:=page.TNSSEGSZ*%2000-1;
t := code[i-I.<7:15>];
s.<7> := t.<0>; ! CS
s.<4> := t.<1>; ! LS
s.<11:15> := t.<2:6>; ! space index
xmap( s );
m := t.<1> | t.<0>;
p := t.<7:15>;
if ~ PRIV then
{if p >= mem[CCSEG[m],0] then
{'validate CCSEG with a trusted copy';
if p >= mem[CCSEG[m],2]
then priv trap;
PRIV:=1
}
};
Lx:=Sx:=Sx+3*2;
if Lx >= %200000 then 'stack overflow'
CS:=t.<0>;
LS:=t.<1>;
P:=code[t.<7:15>]; RP:=7
if P is register-exact point then use
Accelerated Mode
else
use Nonaccelerated Mode
0 3 0 0 - - LLS logical left shift
computeshiftcount(31);
cc(A:=A'<<'shiftcount)
[ See Note 11: Single shifts >= 32 ]
0 3 0 1 - - LRS logical right shift
computeshiftcount(31);
cc(A:=A'>>'shiftcount)
[ See Note 11: Single shifts >= 32 ]
0 3 0 2 - - ALS arithmetic left shift
computeshiftcount(31);
cc(A:=A << shiftcount)
[ See Note 13: Single Shift Counts >= 32 ]
[ See Note 17: Arith Left Shift Overflow ]
0 3 0 3 - - ARS arithmetic right shift
computeshiftcount(31);
cc(A:=A>>shiftcount)
[ See Note 13: Single Shift Counts >= 32 ]
Table C-2. Instruction Definitions (page36of38)