PreviousUpNext

15.4.405  src/lib/compiler/back/low/tools/arch/adl-rtl.pkg

## adl-rtl.pkg          "rtl" == "Register Transfer Language" -- an intermediate code representation.
#
# RTL definitions 

# Compiled by:
#     src/lib/compiler/back/low/tools/arch/make-sourcecode-for-backend-packages.lib

package adl_constant
      : Late_Constant                                                                   # Late_Constant                 is from   src/lib/compiler/back/low/code/late-constant.api
{
    #
    Late_Constant = Void;
    #
    fun late_constant_to_string   _ =  "";
    fun late_constant_to_int      _ =  0;
    fun late_constant_to_hashcode _ =  0u0;
    fun same_late_constant        _ =  FALSE;
};

package adl_ramregion
      :     Ramregion                                                                   # Ramregion                     is from   src/lib/compiler/back/low/code/ramregion.api
{
    #
    Ramregion = Void;
    # 
    stack    = ();
    readonly = ();
    memory   = ();
    # 
    fun ramregion_to_string _ =  "";
};

package adl_extension
      : Treecode_Extension                                                              # Treecode_Extension            is from   src/lib/compiler/back/low/treecode/treecode-extension.api
{
    #
    Sx ( S,R,F,C ) =  Void;
    Rx ( S,R,F,C ) =  Void;
    Fx ( S,R,F,C ) =  Void;
    Ccx( S,R,F,C ) =  Void;
};

package adl_treecode
    =
    treecode_form_g (                                                                   # treecode_form_g               is from   src/lib/compiler/back/low/treecode/treecode-form-g.pkg
        #
        package lac =  adl_constant;
        package rgn =  adl_ramregion;
        package trx =  adl_extension;
    );


stipulate
    package adl_client_pseudo_ops {
        #
        package bpo {                                                                   # "bpo" == "base_pseudo_ops".
            #
            package tcf = adl_treecode;                                                 # "tcf" == "treecode_form".
            stipulate
                package pb  = pseudo_op_basis_type;
            herein
                #
                Pseudo_Op(X) =  pb::Pseudo_Op( tcf::Label_Expression, X );
            end;
            #
            fun pseudo_op_to_string             _ =   "";
            fun label_expression_to_string      _ =   "";
            fun define_private_label            _ =   "";
            fun put_pseudo_op                  _ =   ();
            fun current_pseudo_op_size_in_bytes _ =   0;
        };
        #
        Pseudo_Op = Void;
        #
        fun pseudo_op_to_string             _ =  "";
        fun put_pseudo_op                  _ =  ();
        fun current_pseudo_op_size_in_bytes _ =  0;
        fun adjust_labels                   _ =  FALSE;
    };
herein

    package adl_pseudo_ops
        = 
        pseudo_op_g (                                                                   # pseudo_op_g                                   is from   src/lib/compiler/back/low/mcg/pseudo-op-g.pkg
            #
            package cpo = adl_client_pseudo_ops;
        );
end;


package adl_stream
    =
    codebuffer_g (
        #
        adl_pseudo_ops
    );

package adl_treecode_utilities
    = 
    treecode_hashing_equality_and_display_g (                                           # treecode_hashing_equality_and_display_g       is from   src/lib/compiler/back/low/treecode/treecode-hashing-equality-and-display-g.pkg
        #
        package tcf =  adl_treecode;                                                    # "tcf" == "treecode_form".
        #
        fun hash_sext  _ _ =  0u0;
        fun hash_rext  _ _ =  0u0;
        fun hash_fext  _ _ =  0u0;
        fun hash_ccext _ _ =  0u0;
        #
        fun eq_sext    _ _ =  FALSE;
        fun eq_rext    _ _ =  FALSE;
        fun eq_fext    _ _ =  FALSE;
        fun eq_ccext   _ _ =  FALSE;
        #
        fun show_sext  _ _ =  "";
        fun show_rext  _ _ =  "";
        fun show_fext  _ _ =  "";
        fun show_ccext _ _ =  "";
    );

package adl_treecode_rewrite
    = 
    treecode_rewrite_g (                                                                # treecode_rewrite_g                            is from   src/lib/compiler/back/low/treecode/treecode-rewrite-g.pkg
        #
        package tcf =  adl_treecode;                                                    # "tcf" == "treecode_form".
        #
        fun sext  _ x =  x;
        fun rext  _ x =  x;
        fun fext  _ x =  x;
        fun ccext _ x =  x;
    );

package adl_treecode_fold
    = 
    treecode_fold_g (                                                                   # treecode_fold_g       is from   src/lib/compiler/back/low/treecode/treecode-fold-g.pkg
        #
        package tcf =  adl_treecode;                                                    # "tcf" == "treecode_form".
        #
        fun sext  _ (_,    x) =  x;
        fun rext  _ (_, _, x) =  x;
        fun fext  _ (_, _, x) =  x;
        fun ccext _ (_, _, x) =  x;
    );

package adl_treecode_rtl
    = 
    treecode_rtl_g (                                                                    # treecode_rtl_g        is from   src/lib/compiler/back/low/treecode/treecode-rtl-g.pkg
        #
        package tcj = adl_treecode_utilities;
        package tcr = adl_treecode_rewrite;
        package fld = adl_treecode_fold;
    );

package adl_rtl_builder
    =
    rtl_build_g (                                                                       # rtl_build_g           is from   src/lib/compiler/back/low/treecode/rtl-build-g.pkg
        #
        adl_treecode_rtl
    );


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext