PreviousUpNext

15.3.158  src/lib/compiler/back/low/sparc32/treecode/pseudo-instructions-sparc32.api

# pseudo-instructions-sparc32.api --- Sparc pseudo instructions 

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

stipulate
    package rkj =  registerkinds_junk;                                  # registerkinds_junk            is from   src/lib/compiler/back/low/code/registerkinds-junk.pkg
herein

    api Pseudo_Instruction_Sparc32 {
        #
        package mcf: Machcode_Sparc32;                                  # Machcode_Sparc32              is from   src/lib/compiler/back/low/sparc32/code/machcode-sparc32.codemade.api

        Format1
           = 
           ( { r:  rkj::Codetemp_Info,
               i:  mcf::Operand,
               d:  rkj::Codetemp_Info
             },
             (mcf::Operand -> rkj::Codetemp_Info)
           )
           ->
           List( mcf::Machine_Op );

        Format2
           = 
           ({   i: mcf::Operand,
               d: rkj::Codetemp_Info
           },
           (mcf::Operand -> rkj::Codetemp_Info))
           ->
           List( mcf::Machine_Op );


        # Signed and unsigned multiplications.
        # These are all 32 bit operations:
        #
        umul32:      Format1;    # unsigned/non-trapping 
        smul32:      Format1;    # signed/non-trapping 
        smul32trap:  Format1;    # trap on overflow 
        udiv32:      Format1;    # unsigned/non-trapping 
        sdiv32:      Format1;    # signed/non-trapping 
        sdiv32trap:  Format1;    # trap on overflow/zero 

        # Convert integer into floating point:
        #
        cvti2d:  Format2;
        cvti2s:  Format2;
        cvti2q:  Format2;

        overflowtrap32:  List( mcf::Machine_Op );                       # 32-bit overflow detection:
        overflowtrap64:  List( mcf::Machine_Op );                       # 64-bit overflow detection:
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext