|
|
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 - metrics - downloadIndex: R T
Length: 3689 (0xe69)
Types: TextFile
Names: »RAISING_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 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. ALL RIGHTS RESERVED.
;
;
.module "RAISING"
;
;
;
.include "^^standard_assembler_include_file"
.include "^^common.runtime_definitions"
.include "^^common.os2000_definitions"
comp_unit runtime_compunit
.sect ada_runtime_code,code,relocatable,alignment:=2
.gbl.l __raising_elab
.gbl.l __raise_exception
.gbl.l __propagate_exception
.gbl.l __raise_constraint_error
.gbl.l __raise_storage_error
.gbl.l __unelaborated_subprogram
.ext.l __propagate_exception_branch
.ext.l __get_exception_indirect
.ext.l __set_exception_indirect
.ext.l __trace_exception
.ext.l __error_path
.ext.l __constraint_error
.ext.l __storage_error
.ext.l __program_error
.ext.l __tasking_error
.ext.l __numeric_error
.ext.l __tasking_error_var
subprogram sp_rt,sp.internal,linkage.simple
__raise_storage_error:
lea (__storage_error:16,a5),A0
bra.b $move_exception_and_raise
subprogram sp_rt,sp.internal,linkage.simple
__unelaborated_subprogram:
__raise_program_error:
lea (__program_error:16,a5),a0
bra.b $move_exception_and_raise
subprogram sp_rt,sp.internal,linkage.simple
__raise_constraint_error:
lea (__constraint_error:16,a5),a0
$move_exception_and_raise:
move.l a0,D0
bra.w __raise_exception
subprogram sp_rt,sp.internal,linkage.simple
__raise_exception:
move.l (a7),-(a7) ; Save copy of raise pc
statement 0,0,1
move.l d0,-(a7) ; push exception id
statement 0,0,2
move.l d0,-(a7) ; push exception id
statement 0,0,3
jsr ([__set_exception_indirect,a5]) ; call set Exception_Id
statement 0,0,2
bsr.l __trace_exception ; go to tracing routine
statement 0,0,1
propagate:
jmp ([__propagate_exception_branch,a5]) ; return to user code
;
; procedure Propagate_Exception;
;
subprogram sp_rt,sp.internal,linkage.simple
__propagate_exception:
jsr ([__get_exception_indirect,a5]) ; get Exception_Id
tst.l d0 ; is is abortion?
beq.b propagate ; if so don't trace
move.l d0,-(sp)
statement 0,0,1
bsr.l __trace_exception ; go to tracing routine
statement 0,0,0
bra.s propagate
;
; Elaboration
;
subprogram sp_rt,sp.internal,linkage.simple
__raising_elab:
lea (__tasking_error:16,a5),a0
move.l a0,(__tasking_error_var:16,a5)
rts
end_subprograms
.end