PreviousUpNext

15.4.345  src/lib/compiler/back/low/pwrpc32/mcg/gas-pseudo-ops-pwrpc32-g.pkg

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

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

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

    # This generic is invoked (only) from:
    #
    #     src/lib/compiler/back/low/main/pwrpc32/backend-lowhalf-pwrpc32.pkg
    #
    generic package  gas_pseudo_ops_pwrpc32_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                                              # "tce" == "treecode_eval".
                         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
                = 
                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=>0ux60000000: one_word_unt::Unt };      #  FIX . ori 0, 0, 0
                );

            package gap
                = 
                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