PreviousUpNext

15.4.382  src/lib/compiler/back/low/sparc32/mcg/gas-pseudo-ops-sparc32-g.pkg

# gas-pseudo-ops-sparc32-g.pkg

# Compiled by:
#     src/lib/compiler/back/low/sparc32/backend-sparc32.lib

# We are invoked from:
#
#     src/lib/compiler/back/low/main/sparc32/backend-lowhalf-sparc32.pkg

stipulate
    package lem =  lowhalf_error_message;                               # lowhalf_error_message         is from   src/lib/compiler/back/low/control/lowhalf-error-message.pkg
    package pbt =  pseudo_op_basis_type;                                # pseudo_op_basis_type          is from   src/lib/compiler/back/low/mcg/pseudo-op-basis-type.pkg
herein

    generic package  gas_pseudo_ops_sparc32_g  (
        #            ========================
        #
        package tcf: Treecode_Form;                                     # Treecode_Form                 is from   src/lib/compiler/back/low/treecode/treecode-form.api

        package tce: Treecode_Eval                                      # Treecode_Eval                 is from   src/lib/compiler/back/low/treecode/treecode-eval.api
                     where
                         tcf == tcf;                                    # "tcf" == "treecode_form".
    )
    : (weak)  Base_Pseudo_Ops                                           # Base_Pseudo_Ops               is from   src/lib/compiler/back/low/mcg/base-pseudo-ops.api
    {
        # Export to client packages:
        #
        package tcf =  tcf;


        stipulate
            package ndn                                                 # "ndn" == "endian"
                = 
                big_endian_pseudo_op_g (                                # big_endian_pseudo_op_g        is from   src/lib/compiler/back/low/mcg/big-endian-pseudo-op-g.pkg
                    #
                    package tcf =  tcf;                                 # "tcf" == "treecode_form".
                    package tce =  tce;                                 # "tce" == "treecode_eval".
                    #
                    icache_alignment =  16;                             # Cache line size.
                    max_alignment    =  THE 7;                          # Maximum alignment for internal labels 
                    #
                    nop = { size=>4, en=>0ux1000000: one_word_unt::Unt };
                );

            package gap                                                 # "gap" == "gnu_assembler_pseudo_ops"
                = 
                gnu_assembler_pseudo_op_g (                             # gnu_assembler_pseudo_op_g     is from   src/lib/compiler/back/low/mcg/gnu-assembler-pseudo-op-g.pkg
                    #
                    package tcf =  tcf;                                 # "tcf" == "treecode_form".
                    #
                    label_format =  { global_symbol_prefix   => "",
                                      anonymous_label_prefix => "L"
                                    };
                );
        herein

            Pseudo_Op(X)
                =
                pbt::Pseudo_Op( tcf::Label_Expression, X ); 

            fun error msg
                =
                lem::error ("gnu_assembler_pseudo_ops.", msg);

            current_pseudo_op_size_in_bytes =  ndn::current_pseudo_op_size_in_bytes;
            put_pseudo_op                       =  ndn::put_pseudo_op;

            label_expression_to_string  =  gap::label_expression_to_string;
            pseudo_op_to_string         =  gap::to_string;
            define_private_label        =  gap::define_private_label;
        end;
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext