Files
Arquivotheca.AIX-4.1.3/bos/kernel/sys/POWER/comlink.m4
seta75D d6fe8fe829 Init
2021-10-11 22:19:34 -03:00

107 lines
4.2 KiB
Plaintext

# @(#)22 1.8 src/bos/kernel/sys/POWER/comlink.m4, cmdas, bos411, 9428A410j 6/15/90 17:46:47
#
# COMPONENT_NAME: (CMDAS) Assembler and Macroprocessor
#
# FUNCTIONS:
#
# ORIGINS: 27
#
# (C) COPYRIGHT International Business Machines Corp. 1985, 1990
# All Rights Reserved
# Licensed Materials - Property of IBM
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#-----------------------------------------------------------------------#
# NAME: comlink.m4
#
# PLATFORM: R2
#
# FUNCTION: This file defines equates for the common cross-language
# subroutine linkage conventions.
#
#-----------------------------------------------------------------------#
# Stack Register
.set stk,1 # Stack Register
# Parameters passed on the stack
.set stkmin, 56 # minimum stack frame size
.set stkp9, stkmin # pass parameter word 9 here
# Parameters normally in registers
# (callee may store them here to get contiguous argument list)
.set stkp8, 52
.set stkp1, 24
# Inter-module link area
.set stktoc, 20 # inter-module saved toc pointer
.set stkret, 16 # inter-module saved return addr
# two reserved words
.set stklink, 8 # link register save area
.set stkcond, 4 # condition register save area
.set stkback, 0 # backchain to caller's frame
# Floating point register save area - full save starts with FPR14
.set stkfpr31, -8 # fpr 31 save area
.set stkfpr30, -16 # fpr 30 save area
.set stkfpr29, -24 # fpr 29 save area
.set stkfpr28, -32 # fpr 28 save area
.set stkfpr27, -40 # fpr 27 save area
.set stkfpr26, -48 # fpr 26 save area
.set stkfpr25, -56 # fpr 25 save area
.set stkfpr24, -64 # fpr 24 save area
.set stkfpr23, -72 # fpr 23 save area
.set stkfpr22, -80 # fpr 22 save area
.set stkfpr21, -88 # fpr 21 save area
.set stkfpr20, -96 # fpr 20 save area
.set stkfpr19, -104 # fpr 19 save area
.set stkfpr18, -112 # fpr 18 save area
.set stkfpr17, -120 # fpr 17 save area
.set stkfpr16, -128 # fpr 16 save area
.set stkfpr15, -136 # fpr 15 save area
.set stkfpr14, -144 # fpr 14 save area
# General purpose register save area
#
# These are the offsets if no floating point registers
# were saved, otherwise one must also subtract eight bytes
# times the number of floating point registers saved.
.set stkr31, -4 # GPR save area
.set stkr13, -76 # full save starts with R13
# GPR's 0-12 are not normally saved, but would go here if they were.
# These locations are normally used for local variables, but signal
# delivery code on svc exit saves registers 0-12.
.set stkr12, stkr13-4 # R12, not normally saved
.set stkr0, -128 # R0, not normally saved
.set stkr1, -124 # R1
.set stkr2, -120 # R2
.set stkr3, -116 # R3
# The following reflect stack frames for routines that have no
# local variables.
.set stkpush, stkr13-4 #decr. to here to "buy" a frame
.set stkpop, 0-stkpush #incr. to here to release frame
#
# Exec sets up an initial stack for execexit as described in exec.c
# The constants below are the offsets to variables in this stack.
#
.set exstkr0,0 # offset of r0
.set extstkr1,4 # ofsset of r1
.set extstkr31,124 # offset of r31
.set exstklr,128 # offset of link reg
.set exstkenv,132 # offset of environ pointer
.set exerrno,136 # offset of errno