located
at
effective
address
of
the
instruction.
This
doubleword,
referred
to as a
stack
pointerdoubleword
(SPD),
has
the
following structure:
Bit
positions 15 through
31
of
the
SPD
contain
a
17-bit
address
field
t
that
points to
the
location
of
the word
cur-
rently
at
the
top (highest-numbered address)
of
the
oper-
and
stack.
In
a push
operation,
the
top-of-stack
address
is
incremented
by 1 and then an operand in a
general
reg-
ister is pushed (stored) into
that
location,
thus becoming
the
contents
of
the new top
of
the
stack;
the contents
of
the previous top
of
the
stack
remain
unchanged.
In
a pull
operation,
the
contents
of
the
current
top
of
the
stack
are
pulled
(loaded) into a
general
register
and
then the
top-
of-stack
address
is
decremented
by
1;
the
contents
of
the
stack
remain unchanged.
Bit
positions 33 through
47
of
the SPD, referred to as the
space
count,
contain
a
15-bit
count
(0
to 32,767)
of
the
number
of
word locations
currently
avai
lable
in the region
of
memory
allocated
to the
stack.
Bit
positions
49
through 63
of
the SPD, referred to as the word
count,
contain
a
15-bit
count
(0
to 32,767) of the number
of
words
currently
in
the
stack.
In
a push
operation,
the
space
count
is decremented
by 1
and
the
worcl
count
is
incremented
by
1;
in a pull
oper-
ation,
the
space
count is
incremented
by 1 and the word
count
is
decremented
by
1.
At
the
beginning
of
all
non-
privi leged push-down instructions,
the
space
count
and the
word
count
are
each
f'ested to
determine
whether
the
instruc-
tion would
cause
either
count
field
to be incremented
above
the upper limit
of
2
15
_1
(32,767), or to be decremented
beiow
the
iower iimit
of
O.
if
execution
of
the push-down
instruction would cause
either
count
limit to be
exceeded,
the
basic
processor
unconditionally
aborts
execution
of
the
instruction,
with
the
stack,
the
stack
pointer
doubleword,
and the
contents
of
general
registers
unchanged.
Ordinarily,
the
basic
processor traps to
location
X
'
42
1
after
aborting
a push-down instruction
because
of
impending
stack
limit
overflow
or
underflow,
and
with the condition
code
un-
changed
from
the
value
it
contained
before
execution
of
the instruction.
However, this
trap
action
can
be
selectively
inhibited
by
setting
either
(or both)
of
the
trap
inhibit bits in the
SPD
to
1.
t
For real
extended
mode
of
addressing this
is
a
20-bit
field (12-31); for real and virtual addressing modes
it
is a
17-bit
field (15-31),
80 Push-Down Instructions
(Non-Privi
leged)
Bit
position 32
of
the
SPD, referred to as
the
trap-on-space
(TS)
inhibit
bit,
determines
whether
the
basic
processor will
trap
to location X
'
42
1
as a result
of
impending overflow
or
underflow of the
space
count
(SPD
33
.;.47)' as follows:
TS
Space
count
overflow/underflow
action
o If
the
execution
of
a pull instruction would cause
the
space
count
to
exceed
2
15
-
1
, or
if
the
executi
on
of
a
push instruction would cause
the
space
count
to
be
less than
0,
the
basic
processor traps to
location
X
'
42
1
with
the
condition
code
unchanged.
Instead
of
trapping to
location
X'421, the
basic
pro-
cessor sets
CCl
to 1 and then
executes
the
next
in-
struction in
sequence.
Bit
position
48
of
the
SPD, referred to
as
the
trap-on-word
(TW)
inhibit
bit,
determines
whether
the
basic processor
traps to
location
X
'
42
1
as
a result
of
impending overflow
or
underflow
of
the word
count
(SPD
49-63)'
as fo.llows:
TW
Word
count
overflow/underflow
action
o If
the
execution
of a push instruction would cause
the
word
count
to
exceed
2
15
-
1
,
or
if
the
execution
of
a pull instruction would cause the word
count
to
be
less than
0,
the
basic processor traps
to
location
X
'
42
1
with
the
condition
code
unchanged.
Instead
of
trapping to
location
X'421, the
basic
pro-
cessor sets CC3
to
1
and
then
executes
the
next
instruction in
sequence.
PUSH-DOWN
CONDITION
CODE
SEnlNGS
If
the
execution
of
a push-down instruction is
attempted
and
the
basi c processor traps to
locati
on X'421,
the
condi-
tion
code
remains unchanged from the value
it
contained
immediately before the instruction was
executed.
If
the
execution
of
a push-down instruction is
attempted
and
the
instruction
is
aborted
because
of
impending
stack
iimit
overflow
or
underflow (or both)
but
the push-down
stack
limit trap is
inhibited
by one (or both)
of
the
inhibits
(TS
and
TW),
then,
CCl
or
CC3 is
set
to 1 (or both
are
set
to
lis)
to
indicate
the
reason for
aborting
the
push-down
instruction, as follows:
o
2 3 4 Reason for
abort
Impending overflow
of
word
count
on a push
operation
or
impending underflow
of
word
count
on a pull
operation.
The push-down
stack
limit trap was
inhibited
by
the
TW
bit
(SPD
48)'
o - Impending overflow
of
space
count
on a pull
operation
or
impending underflow
of
space
count
on a push
operation.
The push-down
stack
limit trap was
inhibited
by
the
TS
bit
(
SPD
32)ยท