|
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: ┃ B T ┃
Length: 7449 (0x1d19) Types: TextFile Names: »B«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦24d1ddd49⟧ └─⟦this⟧
separate (Shared_Code_Generic_Support) package body Asm_Interface is pragma Suppress_All; type Wide_Enum is new Integer; -- To force Boolean and Expression_Kind parameters to be passed -- in a word. function Call_Value_Size (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Exp : Expression; Exp_Kind : Wide_Enum) return Integer; -- To call Value_Size_Subp in the Type_Descriptor pragma Interface (Asm, Call_Value_Size); pragma Import_Function (Internal => Call_Value_Size, External => "__CALL_VALUE_SIZE", Mechanism => (Reference, Reference, Value, Value)); function Call_Allocate (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Collection_Or_Heap : System.Address; Is_Collection : Wide_Enum; Is_Homogeneous : Wide_Enum) return System.Address; -- To call Allocate_Subp in the Type_Descriptor pragma Interface (Asm, Call_Allocate); pragma Import_Function (Internal => Call_Allocate, External => "__CALL_ALLOCATE", Mechanism => (Reference, Reference, Value, Value, Value)); function Call_Allocate_With_Tasks (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Collection_Or_Heap : System.Address; Is_Collection : Wide_Enum; Is_Homogeneous : Wide_Enum; Master_Layer : System.Address; Activation_Group : System.Address) return System.Address; -- To call Allocate_Subp in the Type_Descriptor pragma Interface (Asm, Call_Allocate_With_Tasks); pragma Import_Function (Internal => Call_Allocate_With_Tasks, External => "__CALL_ALLOCATE_WITH_TASKS", Mechanism => (Reference, Reference, Value, Value, Value, Value, Value)); procedure Call_Dscrmt_Record_Assign (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Source : Expression; Source_Kind : Wide_Enum; Dest : Expression; Dest_Kind : Wide_Enum); -- To call Dscrmt_Record_Assign_Subp in the Type_Descriptor pragma Interface (Asm, Call_Dscrmt_Record_Assign); pragma Import_Procedure (Internal => Call_Dscrmt_Record_Assign, External => "__CALL_DSCRMT_RECORD_ASSIGN", Mechanism => (Reference, Reference, Value, Value, Value, Value)); function Call_Dscrmt_Record_Satisfies (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Exp : Expression; Exp_Kind : Wide_Enum) return Boolean; -- To call Dscrmt_Record_Satisfies_Subp in the Type_Descriptor. -- Does ONLY a subtype check. pragma Interface (Asm, Call_Dscrmt_Record_Satisfies); pragma Import_Function (Internal => Call_Dscrmt_Record_Satisfies, External => "__CALL_DSCRMT_RECORD_SATISFIES", Mechanism => (Reference, Reference, Value, Value)); -- Exported subprograms follow function Value_Size (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Exp : Expression; Exp_Kind : Expression_Kind) return Integer is pragma Routine_Number (N => Runtime_Ids.Internal); begin return Call_Value_Size (Subp => Subp, Type_Desc => Type_Desc, Exp => Exp, Exp_Kind => Expression_Kind'Pos (Exp_Kind)); end Value_Size; function Allocate (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Collection_Or_Heap : System.Address; Is_Collection : Boolean; Is_Homogeneous : Boolean) return System.Address is pragma Routine_Number (N => Runtime_Ids.Internal); begin return Call_Allocate (Subp => Subp, Type_Desc => Type_Desc, Collection_Or_Heap => Collection_Or_Heap, Is_Collection => Boolean'Pos (Is_Collection), Is_Homogeneous => Boolean'Pos (Is_Homogeneous)); end Allocate; function 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 is pragma Routine_Number (N => Runtime_Ids.Internal); begin return Call_Allocate_With_Tasks (Subp => Subp, Type_Desc => Type_Desc, Collection_Or_Heap => Collection_Or_Heap, Is_Collection => Boolean'Pos (Is_Collection), Is_Homogeneous => Boolean'Pos (Is_Homogeneous), Master_Layer => Master_Layer, Activation_Group => Activation_Group); end Allocate_With_Tasks; procedure Dscrmt_Record_Assign (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Source : Expression; Source_Kind : Expression_Kind; Dest : Expression; Dest_Kind : Expression_Kind) is pragma Routine_Number (N => Runtime_Ids.Internal); begin Call_Dscrmt_Record_Assign (Subp => Subp, Type_Desc => Type_Desc, Source => Source, Source_Kind => Expression_Kind'Pos (Source_Kind), Dest => Dest, Dest_Kind => Expression_Kind'Pos (Dest_Kind)); end Dscrmt_Record_Assign; function Dscrmt_Record_Satisfies (Subp : Subprogram_Variable; Type_Desc : Type_Descriptor; Exp : Expression; Exp_Kind : Expression_Kind) return Boolean is pragma Routine_Number (N => Runtime_Ids.Internal); begin return Call_Dscrmt_Record_Satisfies (Subp => Subp, Type_Desc => Type_Desc, Exp => Exp, Exp_Kind => Expression_Kind'Pos (Exp_Kind)); end Dscrmt_Record_Satisfies; end Asm_Interface; pragma Runtime_Unit (Unit_Number => Runtime_Ids.Runtime_Compunit, Elab_Routine_Number => Runtime_Ids.Internal);