Trailing-Edge
-
PDP-10 Archives
-
bb-kl11c-bm_tops20_v6_1_atpch1_16
-
autopatch/expgen.c08
There are 2 other files named expgen.c08 in the archive. Click here to see a list.
INS 1/1 ;08C1
; UPD ID= 1577 on 5/4/84 at 10:57 AM by MCARLETON
INS 25/1 ;08C2
;JEH 26-APR-84 [1522] Clean up EOP stack if error w/ ref. modifiers
;JEH 19-DEC-83 [1511] Test for need of float. point correction factor
; before generating rounding statements
DEL 129/3 ;08C3
MOVE TC,OPERND
MOVE TC,1(TC)
TLNE TC,GNROUN
JRST [PUSHJ PP,ROUND ;[762] ROUNDING REQUIRED
JRST CEND1C] ;[762]
REP 143/3 ;08C4
CEND1C: SETZM EMULSZ ;SET "SINGLE RESULT" INDICATOR
WIT
CEND1C: HRRZ TC,OPERND ;[1511] Destination operand address
MOVE TC,1(TC) ;[1511] second word of operand pair
TLNE TC,GNROUN ;[1511] test on rounding bit
PUSHJ PP,ROUND## ;[1511] generate rounding code
SETZM EMULSZ ;SET "SINGLE RESULT" INDICATOR
DEL 31/5 ;08C5
INS 36/5 ;08C6
MOVE CH,EOPNXT ;[1522]
MOVEM CH,CUREOP ;[1522]
REP 28/20 ;08C7
TLNE W1,GNFIGC ;Make sure it's not FG of low-value
JRST GTOPN4 ;It is
WIT
TLNN W1,GNFIGC ;[1522] Make sure it's not FC of low-values
JRST GTOPN5 ;[1522] It's not
INS 49/20 ;08C8
TSWF FERROR ;[1522] Error set in REFMOD?
JRST GTOPN7 ;[1522] Yes, get rid of modifiers
SETZM RMFLAG## ;
TXNE W1,RFMLEN ;[1522] have we done the length?
POPJ PP, ;yes, exit
REP 52/20 ;08C9
SETZM RMFLAG## ;
TXNN W1,RFMLEN ;have we done the length?
JRST GTOPN4 ;no, do it now
POPJ PP, ;yes, exit
GTOPN7: MOVE TA,EOPNXT ;
SKIPA ;
GTOPN8: SOS TA ;continue through rest of EOP stack
MOVE TB,0(TA) ; searching for operands
JUMPGE TB,GTOPN8 ; until finding the one
WIT
JRST GTOPN4 ;do length now
GTOPN7: MOVE TA,EOPNXT ;
TXNE W1,RFMLEN ;[1522] Was error on length?
POPJ PP, ;[1522] Yes, default to rest of field
GTOPN8: POP TA,TB ;[1522] continue through rest of EOP stack
JUMPGE TB,GTOPN8 ; searching for operands until finding the one
REP 67/20 ;08C10
MOVEM TB,0(TA) ;put it back w/ ref mod flag off
WIT
PUSH TA,TB ;[1522] put it back w/ ref mod flag off
REP 71/20 ;08C11
AOS TA ;
ADD TA,TB ;
MOVEM TA,EOPNXT ;
WIT
AOBJP TA,KILL## ;[1522]
LSH TB,1 ;[1522]
HRLS TB ;[1522]
ADD TA,TB ;
MOVEM TA,EOPNXT ;
TSWTZ FERROR ;[1522] If on, error reported
SUM 178392