DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ S T ┃
Length: 10161 (0x27b1) Types: TextFile Names: »SCG_ASM«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦24d1ddd49⟧ └─⟦this⟧
; The use of this system is subject to the software license terms and ; conditions agreed upon between Rational and the Customer. ; ; Copyright 1988, 1989, 1990 by Rational. ; ; RESTRICTED RIGHTS LEGEND ; ; Use, duplication, or disclosure by the Government is subject to ; restrictions as set forth in subdivision (b)(3)(ii) of the Rights in ; Technical Data and Computer Software clause at 52.227-7013. ; ; ; Rational ; 3320 Scott Boulevard ; Santa Clara, California 95054-3197 ; ; PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL; ; USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION ; IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS ; AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF ; 1976. CREATED 1988, 1989, 1990. ALL RIGHTS RESERVED. ; ; .case_sensitive .module "CALL_ASM" .sect ada_runtime_data,DATA,READONLY,RELOCATABLE,ALIGNMENT:=4 .sect ada_runtime_code,CODE,RELOCATABLE,ALIGNMENT:=2 ; ; Entry points ; .gbl.a __CALL_VALUE_SIZE .gbl.a __CALL_INIT .gbl.a __CALL_INIT_WITH_TASKS .gbl.a __CALL_ALLOCATE .gbl.a __CALL_ALLOCATE_WITH_TASKS .gbl.a __CALL_DSCRMT_RECORD_ASSIGN .gbl.a __CALL_DSCRMT_RECORD_SATISFIES .sect ada_runtime_code ;--------------------------------------------------------------- ; function CALL_VALUE_SIZE (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Exp : Expression; ; Exp_kind : Expression_Kind) return Integer; ; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .align 2 __CALL_VALUE_SIZE: clr.l -(a7) link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (24,a6),-(a7) ; Push Expression_Kind move.l (20,a6),-(a7) ; Push Expression move.l (16,a6),-(a7) ; Push Type Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 rtd #16 ; Exit with parameter pop ;--------------------------------------- ; procedure CALL_INIT (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Dest_Address : System.Address); ; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .local $locals'size equ 0 .align 2 __CALL_INIT: clr.l -(a7) ; Dummy exception handler link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (20,a6),-(a7) ; Push Dest_address move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 ; Pop exception handler rtd #12 ; Exit with parameter pop ;--------------------------------------- ; procedure CALL_INIT_WITH_TASKS (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Dest_Address : System.Address; ; Master_Layer : System.Address; ; Activation_Group : System.Address); ; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .local $locals'size equ 0 .align 2 __CALL_INIT_WITH_TASKS: clr.l -(a7) ; Dummy exception handler link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (28,a6),-(a7) ; Push Activation_Group move.l (24,a6),-(a7) ; Push Master_Layer move.l (20,a6),-(a7) ; Push Dest_Address move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 ; Pop exception handler rtd #20 ; Exit with parameter pop ;--------------------------------------------------------------- ; function CALL_ALLOCATE (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Collection_Or_Heap: System.Address; ; Is_Collection : Boolean; ; Is_Homogeneous : Boolean) ; return System.Address; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .align 2 __CALL_ALLOCATE: clr.l -(a7) link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (28,a6),-(a7) ; Push Is_Homogeneous flag move.l (24,a6),-(a7) ; Push Is_Collection flag move.l (20,a6),-(a7) ; Push Collection_Or_Heap move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 rtd #20 ; Exit and pop parameters ;--------------------------------------------------------------- ; function CALL_ALLOCATE_WITH_TASKS ; (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Collection_Or_Heap : System.Address; ; Is_Collection : Boolean; ; Is_Homogeneous : Boolean; ; Master_Layer : System.Address; ; Activation_Group : System.Address) ; return System.Address; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .align 2 __CALL_ALLOCATE_WITH_TASKS: clr.l -(a7) link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (36,a6),-(a7) ; Push Activation_Group move.l (32,a6),-(a7) ; Push Master_Layer move.l (28,a6),-(a7) ; Push Is_Homogeneous flag move.l (24,a6),-(a7) ; Push Is_Collection flag move.l (20,a6),-(a7) ; Push Collection_Or_Heap move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 rtd #28 ; Exit and pop parameters ;--------------------------------------------------------------- ; procedure CALL_DSCRMT_RECORD_ASSIGN (Subp : Subprogram_variable; ; Type_Desc : Type_Descriptor; ; Source : Expression; ; Source_Kind : Expression_Kind; ; Dest : Expression; ; Dest_Kind : Expression_kind) ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .align 2 __CALL_DSCRMT_RECORD_ASSIGN: clr.l -(a7) link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (32,a6),-(a7) ; Push Dest_Kind move.l (28,a6),-(a7) ; Push Dest move.l (24,a6),-(a7) ; Push Source_Kind move.l (20,a6),-(a7) ; Push Source move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp with dest_address unlk A6 ; Remove frame addq.l #4,A7 rtd #24 ; Exit and pop parameters ;--------------------------------------------------------------- ; function CALL_DSCRMT_RECORD_SATISFIES ; (Subp : Subprogram_Variable; ; Type_Desc : Type_Descriptor; ; Exp : Expression; ; Exp_Kind : Expression_Kind) ; return Boolean; ; ; subprogram sp_rt,sp.internal,linkage.frame+2#00000001_00010000# .align 2 __CALL_DSCRMT_RECORD_SATISFIES: clr.l -(a7) link A6,#0 ; Build empty frame movea.l ([12,a6],4),a1 ; Pass static link thru A1 move.l (24,a6),-(a7) ; Push Expression_Kind move.l (20,a6),-(a7) ; Push Exp move.l (16,a6),-(a7) ; Push Type_Descriptor movea.l ([12,a6]),a0 ; Load subprogram address jsr.l (a0) ; Call subp unlk A6 ; Remove frame addq.l #4,A7 rtd #16 ; Exit and pop parameters .end