PreviousUpNext

15.4.318  src/lib/compiler/back/low/main/sparc32/treecode-extension-compiler-sparc32-g.pkg

# treecode-extension-compiler-sparc32-g.pkg
#
# Background comments may be found in:
#
#     src/lib/compiler/back/low/treecode/treecode-extension.api

# Compiled by:
#     src/lib/compiler/mythryl-compiler-support-for-sparc32.lib

stipulate
    package lem =  lowhalf_error_message;                                       # lowhalf_error_message                 is from   src/lib/compiler/back/low/control/lowhalf-error-message.pkg
herein

    # We are invoked from:
    #
    #     src/lib/compiler/back/low/main/sparc32/backend-lowhalf-sparc32.pkg
    #
    generic package   treecode_extension_compiler_sparc32_g   (
        #             =====================================
        #
        package tcf: Treecode_Form                                              # Treecode_Form                                 is from   src/lib/compiler/back/low/treecode/treecode-form.api
                     where
                         trx == treecode_extension_sparc32;

        package mcf: Machcode_Sparc32                                           # Machcode_Sparc32                              is from   src/lib/compiler/back/low/sparc32/code/machcode-sparc32.codemade.api
                     where
                         tcf == tcf;                                            # "tcf" == "treecode_form".


        package tcs: Treecode_Codebuffer                                                # Treecode_Codebuffer                           is from   src/lib/compiler/back/low/treecode/treecode-codebuffer.api
                     where
                         tcf == mcf::tcf;                                       # "tcf" == "treecode_form".

        package mcg: Machcode_Controlflow_Graph                                 # Machcode_Controlflow_Graph                    is from   src/lib/compiler/back/low/mcg/machcode-controlflow-graph.api
                     where
                          mcf == mcf                                            # "mcf" == "machcode_form" (abstract machine code).
                     also pop == tcs::cst::pop;                                 # "pop" == "pseudo_op".
    )
    : (weak) Treecode_Extension_Compiler                                        # Treecode_Extension_Compiler                   is from   src/lib/compiler/back/low/treecode/treecode-extension-compiler.api
    {
        # Export to client packages:
        #
        package mcf =  mcf;                                                     # "mcf" == "machcode_form" (abstract machine code).
        package tcf =  mcf::tcf;                                                # "tcf" == "treecode_form".
        package mcg =  mcg;
        package tcs =  tcs;                                                     # "tcs" == "treecode_stream".

        stipulate       
            package rgk =  mcf::rgk;                                            # "rgk" == "registerkinds".
            #
            package ext = treecode_extension_sparc32;                           # treecode_extension_sparc32                    is from   src/lib/compiler/back/low/main/sparc32/treecode-extension-sparc32.pkg

            package treecode_extension_sext_compiler_sparc32
                  = treecode_extension_sext_compiler_sparc32_g (                # treecode_extension_sext_compiler_sparc32_g    is from   src/lib/compiler/back/low/sparc32/code/treecode-extension-sext-compiler-sparc32-g.pkg
                        #
                        package mcf =  mcf;                                     # "mcf" == "machcode_form" (abstract machine code).
                        package mcg =  mcg;                                     # "mcg" == "machcode_controlflow_graph".
                        package tcs =  tcs;                                     # "tcs" == "treecode_stream".
                    );
        herein

            Reducer
                = 
                tcs::Reducer
                  (
                    mcf::Machine_Op,
                    rgk::Codetemplists,
                    mcf::Operand,
                    mcf::Addressing_Mode,
                    mcg::Machcode_Controlflow_Graph
                  );

            fun unimplemented _
                =
                lem::impossible "treecode_extension_compiler_sparc32_g"; 

            compile_sext  = treecode_extension_sext_compiler_sparc32::compile_sext;
            compile_rext  = unimplemented;
            compile_ccext = unimplemented;
            compile_fext  = unimplemented;
        end;
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext