/* // Note: This header is use by both the CC compiler and the IA64 // assembler (via the CC preprocessor which creates the // IA64 assembler source file). // // The CC portion of this header starts at the comment line // 'CC header begins here'. // // ----------------------------------------------------------------------------- */ #ifdef IAS_ASSEMBLER /* IA64 assembler header begins here */ /* ************************************************************************* */ /* * * */ /* * HP CONFIDENTIAL. This software is confidential proprietary software * */ /* * licensed by Hewlett-Packard Development Company, L.P., and is not * */ /* * authorized to be used, duplicated OR disclosed to anyone without the * */ /* * prior written permission of HP. * */ /* * © 2021 Copyright Hewlett-Packard Development Company, L.P. * */ /* * * */ /* * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential * */ /* * proprietary software licensed by VMS Software, Inc., and is not * */ /* * authorized to be used, duplicated or disclosed to anyone without * */ /* * the prior written permission of VMS Software, Inc. * */ /* * © 2021 Copyright VMS Software, Inc. * */ /* * * */ /* ************************************************************************* */ /* ******************************************************************************************************************************** */ /* Created: 9-Mar-2021 22:28:11 by OpenVMS SDL EV3-3 */ /* Source: 12-SEP-2003 15:25:12 $1$DGA8085:[STARLET_H.SRC]PSIGDEF.SDL;1 */ /* ******************************************************************************************************************************** */ /* .MACRO $PSIGDEF,$GBL */ /* $DEFINI PSIG,$GBL */ /* */ /* Signature block offset definitions for the Alpha/IA64 calling standard. */ /* */ #define PSIG$K_FR_I64 0 /* 64 bit in R0 */ /* or - No function result provided */ #define PSIG$K_FR_D64 1 /* 32 bit low in R0, 32 bit high in r1 - sign extended */ #define PSIG$K_FR_I32 2 /* 32 bit sign extended in R0 */ #define PSIG$K_FR_U32 3 /* 32 bit unsigned in R0 */ #define PSIG$K_FR_FF 4 /* F floating in F0 */ #define PSIG$K_FR_FD 5 /* D floating in F0 */ #define PSIG$K_FR_FG 6 /* G floating in F0 */ #define PSIG$K_FR_FS 7 /* S floating in F0 */ #define PSIG$K_FR_FT 8 /* T floating in F0 */ #define PSIG$K_FR_FFC 11 /* F floating complex in F0 and F1 */ #define PSIG$K_FR_FDC 12 /* D floating complex in F0 and F1 */ #define PSIG$K_FR_FGC 13 /* G floating complex in F0 and F1 */ #define PSIG$K_FR_FSC 14 /* S floating complex in F0 and F1 */ #define PSIG$K_FR_FTC 15 /* T floating complex in F0 and F1 */ /* */ #define PSIG$M_CTRL 0x7 #define PSIG$M_X 0xF8 #define PSIG$M_FUNC_RETURN 0xF00 #define PSIG$M_REG_ARG_INFO 0xFFFFFFFF000000 #define PSIG$M_SU_VLIST 0x4000 #define PSIG$K_MIN_LENGTH 8 /* Minimum length */ #define PSIG$K_MAX_LENGTH 72 /* Maximum length */ #define PSIG$K_MIN_SIZE 8 /* Minimum size */ #define PSIG$K_MAX_SIZE 72 /* Maximum size */ /* or - First parameter mechanism used */ /* First quadword of signature block */ /* */ #define PSIG$S_REGISTER_INFO 8 #define PSIG$Q_REGISTER_INFO 0 #define PSIG$S_CTRL 3 #define PSIG$V_CTRL 0 /* Control information field */ #define PSIG$S_X 5 #define PSIG$V_X 3 /* Not used. Must be zero */ #define PSIG$S_FUNC_RETURN 4 #define PSIG$V_FUNC_RETURN 8 /* Function return signature encoding */ #define PSIG$S_SUMMARY 4 #define PSIG$V_SUMMARY 12 /* Entire summary field */ #define PSIG$B_ARG_COUNT 2 /* Argument count */ #define PSIG$S_REG_ARG_INFO 32 #define PSIG$V_REG_ARG_INFO 24 /* Register argument signature encodings */ #define PSIG$S_MEMORY_ARG_INFO 8 #define PSIG$V_MEMORY_ARG_INFO 56 /* Minimum length for memory argument information */ /* */ /* Summary bits which are contained in the high bits of the first word */ /* */ #define PSIG$S_SUMMARY_INFO 8 #define PSIG$Q_SUMMARY_INFO 0 #define PSIG$S_FILL 12 #define PSIG$V_FILL 0 #define PSIG$S_SU_ASUM 2 #define PSIG$V_SU_ASUM 12 /* summary of arguments 9 through arg_count */ #define PSIG$V_SU_VLIST 14 /* VAX style argument list expected */ #define PSIG$V_UNUSED 15 #define RASE$M_SIG_ENC 0xF #define RASE$K_RA_I64 0 /* (obsolete) */ #define RASE$K_RA_NOARG 0 /* Argument is not present */ #define RASE$K_RA_Q 1 /* 64 bit in Rxx */ #define RASE$K_RA_I32 2 /* 32 bit sign extended in Rxx */ #define RASE$K_RA_U32 3 /* 32 bit unsigned in Rxx */ #define RASE$K_RA_FF 4 /* F floating passed in Fxx */ #define RASE$K_RA_FD 5 /* D floating passed in Fxx */ #define RASE$K_RA_FG 6 /* G floating passed in Fxx */ #define RASE$K_RA_FS 7 /* S floating passed in Fxx */ #define RASE$K_RA_FT 8 /* T floating passed in Fxx */ #define RASE$S_SIG_ENC 4 #define RASE$V_SIG_ENC 0 /* per register signature encoding */ #define MASE$K_MA_I64 0 /* (obsolete) */ #define MASE$K_MA_Q 0 /* 64 bit argument */ #define MASE$K_MA_I32 2 /* 32 bit signed argument */ #define MASE$S_SIG_ENC 2 #define MASE$V_SIG_ENC 0 /* per memory location signature encoding */ /* */ /* Argument Information structure definition for the Alpha/IA64 calling standard. */ /* */ #define AI$K_AR_I64 0 /* Integer argument */ #define AI$K_AR_FF 1 /* VAX F float argument */ #define AI$K_AR_FD 2 /* VAX D float argument */ #define AI$K_AR_FG 3 /* VAX G float argument */ #define AI$K_AR_FS 4 /* IEEE S float argument */ #define AI$K_AR_FT 5 /* IEEE T float argument */ #define AI$K_AR_RESERVED_6 6 /* Reserved value 6 */ #define AI$K_AR_RESERVED_7 7 /* Reserved value 7 */ #define AI$M_ARG_REG_INFO 0x700 #define AI$K_AI_SIZE 8 /* Minimum length */ #define AI$K_REGNO 25 /* The AI register number */ #define AI$B_ARG_COUNT 0 #define AI$S_ARG_REG_INFO 3 #define AI$V_ARG_REG_INFO 8 /* per arg type info for up to 8 arguments */ /* $DEFEND PSIG,$GBL,DEF */ /* .ENDM */ /* IA64 assembler header ends here */ #else /* IAS_ASSEMBLER */ /* CC header begins here */ /********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:06 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFMP.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $PSIGDEF ***/ #ifndef __PSIGDEF_LOADED #define __PSIGDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* Signature block offset definitions for the Alpha/IA64 calling standard. */ /* */ #define PSIG$K_FR_I64 0 /* 64 bit in R0 */ /* or - No function result provided */ #define PSIG$K_FR_D64 1 /* 32 bit low in R0, 32 bit high in r1 - sign extended */ #define PSIG$K_FR_I32 2 /* 32 bit sign extended in R0 */ #define PSIG$K_FR_U32 3 /* 32 bit unsigned in R0 */ #define PSIG$K_FR_FF 4 /* F floating in F0 */ #define PSIG$K_FR_FD 5 /* D floating in F0 */ #define PSIG$K_FR_FG 6 /* G floating in F0 */ #define PSIG$K_FR_FS 7 /* S floating in F0 */ #define PSIG$K_FR_FT 8 /* T floating in F0 */ #define PSIG$K_FR_FFC 11 /* F floating complex in F0 and F1 */ #define PSIG$K_FR_FDC 12 /* D floating complex in F0 and F1 */ #define PSIG$K_FR_FGC 13 /* G floating complex in F0 and F1 */ #define PSIG$K_FR_FSC 14 /* S floating complex in F0 and F1 */ #define PSIG$K_FR_FTC 15 /* T floating complex in F0 and F1 */ /* */ #define PSIG$M_CTRL 0x7 #define PSIG$M_X 0xF8 #define PSIG$M_FUNC_RETURN 0xF00 #define PSIG$M_REG_ARG_INFO 0xFFFFFFFF000000 #define PSIG$M_SU_VLIST 0x4000 #define PSIG$K_MIN_LENGTH 8 /* Minimum length */ #define PSIG$K_MAX_LENGTH 72 /* Maximum length */ #define PSIG$K_MIN_SIZE 8 /* Minimum size */ #define PSIG$K_MAX_SIZE 72 /* Maximum size */ #ifdef __NEW_STARLET typedef struct _psigdef { /* or - First parameter mechanism used */ /* First quadword of signature block */ /* */ __union { __union { unsigned __int64 psig$q_register_info; __struct { unsigned psig$v_ctrl : 3; /* Control information field */ unsigned psig$v_x : 5; /* Not used. Must be zero */ unsigned psig$v_func_return : 4; /* Function return signature encoding */ unsigned psig$v_summary : 4; /* Entire summary field */ unsigned char psig$b_arg_count; /* Argument count */ unsigned psig$v_reg_arg_info : 32; /* Register argument signature encodings */ unsigned psig$v_memory_arg_info : 8; /* Minimum length for memory argument information */ } psig$r_fill_84_; } psig$r_fill_83_; /* */ /* Summary bits which are contained in the high bits of the first word */ /* */ __union { unsigned __int64 psig$q_summary_info; __struct { unsigned psig$v_fill : 12; unsigned psig$v_su_asum : 2; /* summary of arguments 9 through arg_count */ unsigned psig$v_su_vlist : 1; /* VAX style argument list expected */ unsigned psig$v_unused : 1; } psig$r_fill_86_; } psig$r_fill_85_; } psig$r_register_info_overlay; } PSIGDEF; #if !defined(__VAXC) #define psig$q_register_info psig$r_register_info_overlay.psig$r_fill_83_.psig$q_register_info #define psig$v_ctrl psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_ctrl #define psig$v_x psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_x #define psig$v_func_return psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_func_return #define psig$v_summary psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_summary #define psig$b_arg_count psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$b_arg_count #define psig$v_reg_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_reg_arg_info #define psig$v_memory_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_memory_arg_info #define psig$q_summary_info psig$r_register_info_overlay.psig$r_fill_85_.psig$q_summary_info #define psig$v_fill psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_fill #define psig$v_su_asum psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_asum #define psig$v_su_vlist psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_vlist #define psig$v_unused psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_unused #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _psigdef { /* or - First parameter mechanism used */ /* First quadword of signature block */ /* */ __union { __union { unsigned int psig$q_register_info [2]; __struct { unsigned psig$v_ctrl : 3; /* Control information field */ unsigned psig$v_x : 5; /* Not used. Must be zero */ unsigned psig$v_func_return : 4; /* Function return signature encoding */ unsigned psig$v_summary : 4; /* Entire summary field */ unsigned char psig$b_arg_count; /* Argument count */ unsigned psig$v_reg_arg_info : 32; /* Register argument signature encodings */ unsigned psig$v_memory_arg_info : 8; /* Minimum length for memory argument information */ } psig$r_fill_84_; } psig$r_fill_83_; /* */ /* Summary bits which are contained in the high bits of the first word */ /* */ __union { unsigned int psig$q_summary_info [2]; __struct { unsigned psig$v_fill : 12; unsigned psig$v_su_asum : 2; /* summary of arguments 9 through arg_count */ unsigned psig$v_su_vlist : 1; /* VAX style argument list expected */ unsigned psig$v_unused : 1; } psig$r_fill_86_; } psig$r_fill_85_; } psig$r_register_info_overlay; } psigdef; #if !defined(__VAXC) #define psig$q_register_info psig$r_register_info_overlay.psig$r_fill_83_.psig$q_register_info #define psig$v_ctrl psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_ctrl #define psig$v_x psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_x #define psig$v_func_return psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_func_return #define psig$v_summary psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_summary #define psig$b_arg_count psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$b_arg_count #define psig$v_reg_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_reg_arg_info #define psig$v_memory_arg_info psig$r_register_info_overlay.psig$r_fill_83_.psig$r_fill_84_.psig$v_memory_arg_info #define psig$q_summary_info psig$r_register_info_overlay.psig$r_fill_85_.psig$q_summary_info #define psig$v_fill psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_fill #define psig$v_su_asum psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_asum #define psig$v_su_vlist psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_su_vlist #define psig$v_unused psig$r_register_info_overlay.psig$r_fill_85_.psig$r_fill_86_.psig$v_unused #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define RASE$M_SIG_ENC 0xF #define RASE$K_RA_I64 0 /* (obsolete) */ #define RASE$K_RA_NOARG 0 /* Argument is not present */ #define RASE$K_RA_Q 1 /* 64 bit in Rxx */ #define RASE$K_RA_I32 2 /* 32 bit sign extended in Rxx */ #define RASE$K_RA_U32 3 /* 32 bit unsigned in Rxx */ #define RASE$K_RA_FF 4 /* F floating passed in Fxx */ #define RASE$K_RA_FD 5 /* D floating passed in Fxx */ #define RASE$K_RA_FG 6 /* G floating passed in Fxx */ #define RASE$K_RA_FS 7 /* S floating passed in Fxx */ #define RASE$K_RA_FT 8 /* T floating passed in Fxx */ #ifdef __NEW_STARLET typedef struct _rasedef { unsigned rase$v_sig_enc : 4; /* per register signature encoding */ unsigned rase$v_fill_87_ : 4; } RASEDEF; #else /* __OLD_STARLET */ typedef struct _rasedef { unsigned rase$v_sig_enc : 4; /* per register signature encoding */ unsigned rase$v_fill_87_ : 4; } rasedef; #endif /* #ifdef __NEW_STARLET */ #define MASE$K_MA_I64 0 /* (obsolete) */ #define MASE$K_MA_Q 0 /* 64 bit argument */ #define MASE$K_MA_I32 2 /* 32 bit signed argument */ #ifdef __NEW_STARLET typedef struct _masedef { unsigned mase$v_sig_enc : 2; /* per memory location signature encoding */ unsigned mase$v_fill_88_ : 6; } MASEDEF; #else /* __OLD_STARLET */ typedef struct _masedef { unsigned mase$v_sig_enc : 2; /* per memory location signature encoding */ unsigned mase$v_fill_88_ : 6; } masedef; #endif /* #ifdef __NEW_STARLET */ /* */ /* Argument Information structure definition for the Alpha/IA64 calling standard. */ /* */ #define AI$K_AR_I64 0 /* Integer argument */ #define AI$K_AR_FF 1 /* VAX F float argument */ #define AI$K_AR_FD 2 /* VAX D float argument */ #define AI$K_AR_FG 3 /* VAX G float argument */ #define AI$K_AR_FS 4 /* IEEE S float argument */ #define AI$K_AR_FT 5 /* IEEE T float argument */ #define AI$K_AR_RESERVED_6 6 /* Reserved value 6 */ #define AI$K_AR_RESERVED_7 7 /* Reserved value 7 */ #define AI$M_ARG_REG_INFO 0x700 #define AI$K_AI_SIZE 8 /* Minimum length */ #define AI$K_REGNO 25 /* The AI register number */ #ifdef __NEW_STARLET typedef struct _aidef { unsigned char ai$b_arg_count; unsigned ai$v_arg_reg_info : 24 /** WARNING: bitfield array has been reduced to a string **/ ; /* per arg type info for up to 8\ arguments */ unsigned ai$v_arg_mbz2 : 32; /* must be zero */ } AIDEF; #else /* __OLD_STARLET */ typedef struct _aidef { unsigned char ai$b_arg_count; unsigned ai$v_arg_reg_info : 24 /** WARNING: bitfield array has been reduced to a string **/ ; /* per arg type info for up to 8\ arguments */ unsigned ai$v_arg_mbz2 : 32; /* must be zero */ } aidef; #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PSIGDEF_LOADED */ /* CC header ends here */ #endif /* IAS_ASSEMBLER */