Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
expgen.c05
There are 2 other files named expgen.c05 in the archive. Click here to see a list.
INS 18/1 ;05C1
;JEH 07-DEC-82 [1441] Fix edit 1402 and 1430 for non-BIS compilers
;JEH 05-NOV-82 [1430] STORE INTERMEDIARY RESULT IN 2 WORDS IF DP
; FLOATING POINT MODE
;JEH 30-SEP-82 [1402] FORCE FLOATING POINT DIVIDE, BUT
; CONVERT BACK TO INTEGER ARITH. WHEN DONE
;RLF 14-APR-82 [1352] FIX DP FLOATING POINT SUBTRACT
REP 45/2 ;05C2
LDB TD,DA.USG## ;[637] GET USAGE OF TARGET
CAIN TD,%US.C1 ;[637] IF IT IS COMP-1
SETOM FLTDIV ;[637] SET FLAG
WIT
;[1402] LDB TD,DA.USG## ;[637] GET USAGE OF TARGET
;[1402] CAIN TD,%US.C1 ;[637] IF IT IS COMP-1
;[1402] SETOM FLTDIV ;[637] SET FLAG
INS 23/8 ;05C3
IFN BIS,<
CAIE TE,F2MODE ;[1352] CHECK FOR FLOATING POINT
>
REP 9/10 ;05C4
JRST CDIV3
WIT
JRST CDIV4 ;[1402] SEE IF "A" IS FLOATING POINT
REP 37/10 ;05C5
JRST CMUL4
WIT
SETZM FLTDIV ;[1402]
JRST CMUL4
CDIV4: MOVE TE,EMODEA ;[1402] GET MODE OF OPERAND IN AC'S
IFE BIS<CAIN TE,FPMODE> ;[1402] IF FIELD IN AC'S
IFN BIS<CAIN TE,F2MODE> ;[1402] IS ALREADY FLOATING POINT,
JRST CDIV3 ;[1402] GENERATE THE DIVIDE
HRRZ TA,EBYTEB ;[1402] ELSE, FIRST MAKE B OP'S
HRRZ TB,VALLOC ;[1402] BYTEPOINTER RELATIVE
SUB TA,TB ;[1402] (IF IT IS A BYTE POINTER)
SKIPL TA ;[1402] IN CASE OF TABLE
HRRM TA,EBYTEB ;[1402] EXPANSION
IFE BIS<PUSHJ PP,CCXFP.> ;[1441] [1402] CONVERT FIELD IN AC'S
IFN BIS<PUSHJ PP,CCXF2.> ;[1402] TO FP
HRRZ TA,VALLOC ;[1402] MAKE B OP'S POINTER
HRRZ TB,EBYTEB ;[1402] ABSOLUTE AGAIN
SKIPE TB ;[1402]
ADDM TA,EBYTEB ;[1402]
JRST CDIV3 ;[1402] GENERATE DIVIDE CODE
DEL 8/18 ;05C6
INS 34/18 ;05C7
IFN BIS,<
CAIN TD,F2MODE ;[1430] IS IT DP FLOATING POINT?
MOVEI TE,2 ;[1430] YES
> ;BIS - [1441]
INS 19/23 ;05C8
SUM 76658