Trailing-Edge
-
PDP-10 Archives
-
tops20tools_v6_9-jan-86_dumper
-
tools/recog3/rtlpsect.req
There are 2 other files named rtlpsect.req in the archive. Click here to see a list.
!+
! File: RTLPSECT.REQ Edit: JAW1010
! This file, RTLPSECT.REQ, defines the macros for declaring RTL psects.
!-
!
!****************************************************************************
!* *
!* COPYRIGHT (c) 1978, 1980, 1982 BY *
!* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. *
!* ALL RIGHTS RESERVED. *
!* *
!* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED *
!* ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE *
!* INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER *
!* COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY *
!* OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY *
!* TRANSFERRED. *
!* *
!* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE *
!* AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT *
!* CORPORATION. *
!* *
!* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS *
!* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. *
!* *
!* *
!****************************************************************************
!
!
!
! Revision History:
!
! 01-2 - Data PIC, NOSHR. TNH 19-Dec-77
! 01-03 - Make OWN be NOSHARE. TNH 6-Jan-77.
! 01-5 - Make OWN be PIC. TNH 27-June-78.
! 01-6 - Change name to RTLPSECT.REQ. JBS 14-NOV-78
! 1-007 - Add copyright notice. JBS 16-NOV-78
! 1-008 - Change PSECT names to start with "_", to conform to new RTL
! standard. JBS 21-DEC-78
! 1-009 - Remove the PRINT statement, for the new BLISS compiler.
! JBS 02-OCT-1979
! 1-010 - Add optional second argument to DECLARE_PSECTS, to allow
! control of OWN PSECT alignment boundary. See FOR$$EXIT_HANDL
! for further information. JAW 23-FEB-1981
!--
! Declare PSECTS for all Library modules.
!+
! Macro to declare PSECTs for a facility, given the facility prefix.
! The declarations are very dependent on the linker algorithm
! for sorting PSECTs. Currently that algorithm divides
! PSECTs into four groups depending on WRITE vs NOWRITE and
! EXECUTE vs NOEXECUTE. Therefore in order to get
! compact programs, PLIT is made EXECUTABLE to get is close to CODE.
!
! Example of use:
!
! PSECT DECLARATIONS:
!
! DECLARE_PSECTS (FOR); ! Declare PSECTs for FOR$ facility
!
! Note: since the methodology manual does not yet specify where PSECT
! declarations go in a module, they are put between EQUATED SYMBOLS
! and OWN STORAGE (which is after INCLUDE files).
!-
MACRO
DECLARE_PSECTS (FAC, BOUND) =
PSECT
CODE = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)),
PLIT = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)),
OWN = %NAME ('_', FAC, $DATA) (READ, WRITE, NOEXECUTE, NOSHARE, PIC, ADDRESSING_MODE (LONG_RELATIVE)
%IF %LENGTH GEQU 2 %THEN , ALIGN(BOUND) %FI),
GLOBAL = %NAME ('_', FAC, $DATA) (READ, WRITE, NOEXECUTE, NOSHARE, PIC, ADDRESSING_MODE (LONG_RELATIVE)) %;
!+
! Define macro for declaring PIC (position independent) dispatch tables
! as OWN storage (would be better if BIND table = PLIT (...), however,
! BLISS doesn't allow table to be referenced inside PLIT definition,
! so use OWN storage instead). The OWN storage is temporarily defined
! to be same PSECT as code, then DECLARE_PSECTS should be called again
! to restore OWN to _fac$DATA PSECT.
!-
MACRO
DISPATCH_PSECTS (FAC) =
PSECT
CODE = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)),
PLIT = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)),
OWN = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)),
GLOBAL = %NAME ('_', FAC, $CODE) (READ, NOWRITE, EXECUTE, SHARE, PIC, ADDRESSING_MODE (WORD_RELATIVE)) %;
! End of file RTLPSECT.REQ