HP.com home PA-RISC Procedure Calling Conventions Reference Manual > Appendix A Standard Procedure Calls

A.4 Assembly Listing

MPE documents

Complete PDF
Table of Contents

The numbers and letters in parenthesis are used as labels for the documentation that follows the listing.

        .SPACE  $TEXT$              (a)
        .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
  mul
        .PROC                       (b)
        .CALLINFO CALLER,FRAME=-8,ENTRY_SR=1 
        .ENTRY
  ;     .EXPORTED

        LDO     40(30),30       ;   (11)
        STW     26,-76(0,30)    ;
        STW     25,-80(0,30)    ;
        LDW     -76(0,30),26    ;
        .CALL ; in=25,26; out=29;
        BL      $$muloI,31      ;
        LDW     -80(0,30),25    ;

        STW     29,-40(0,30)    ;   (12)
        LDW     -40(0,30),28    ;
  00002711 (dummy label)
        BV      0(2)            ;   (13)
        .EXIT                   ;   (c) 
        LDO     -40(30),30      ;
        .PROCEND;in=25,26;out=28;

  proca
        .PROC                       (b)
        .CALLINFO CALLER,FRAME=0,ENTRY_SR=1,SAVE_RP
        .ENTRY
  ;     .EXPORTED

        STW     2,-20(0,30)     ;   (7)
        LDO     48(30),30       ;

        STW     26,-84(0,30)    ;   (8)
        STW     25,-88(0,30)    ;
        STW     24,-92(0,30)    ;
        STW     23,-96(0,30)    ;
        LDW     -84(0,30),1     ;   (9)
        LDW     -88(0,30),31    ;
        ADDO    1,31,19         ;
        LDW     -92(0,30),20    ;
        STW     19,0(0,20)      ;

        LDW     -84(0,30),26    ;   (10)
        .CALL ; in=25,26; out=28;
        BL      mul,2           ;
        LDW     -88(0,30),25    ;

        LDW     -96(0,30),21    ;   (14)
        STW     28,0(0,21)      ;
  00002712 (dummy'label)
        LDW     -68(0,30),2     ;   (15)
        BV      0(2)            ;
        .EXIT                   ;   (c)
        LDO     -48(30),30      ;
        .PROCEND; in=23,24,25,26;
 
  one
        .PROC                       (b)
        .CALLINFO CALLER,FRAME=32,SAVE_RP
        .ENTRY
  ;     .EXPORTED

        STW     2,-20(0,30)     ;   (3)
        LDO     80(30),30       ;

        LDI     5,22            ;   (4)
        STW     22,-60(0,30)    ;
        LDI     10,1            ;
        STW     1,-64(0,30)     ;

        LDW     -60(0,30),26    ;   (5)
        LDW     -64(0,30),25    ;
        LDO     -68(30),24      ;
        LDO     -72(30),23      ;
        LDW     -76(0,30),31    ;
        LDW     -80(0,30),19    ;
        STW     31,-52(0,30)    ;
        STW     19,-56(0,30)    ;

        .CALL   ; in=23,24,25,26;   (6)
        BL      proca,2         ;
        NOP                     ;

        LDW     -76(0,30),20    ;   (16)
        LDW     -80(0,30),21    ;
        ADDO    20,21,22        ;
        STW     22,-76(0,30)    ;
        LDW     -76(0,30),1     ;
        STW     1,-80(0,30)     ;
  00002713 (dummy label)
        LDW     -100(0,30),2    ;   (17)
        BV      0(2)            ;
        .EXIT                   ;   (c)
        LDO     -80(30),30      ;
        .PROCEND

  PROGRAM
  _start
        .PROC                       (c)
        .CALLINFO CALLER,FRAME=0,SAVE_SP,SAVE_RP
        .ENTRY
  ;     .EXPORTED

        STW     2,-20(0,30)     ;   (1)
        LDO     48(30),30       ;
        STW     0,-4(0,30)      ;
                    :
                    :
  < calls to system process initialization procedures >
  < these would not appear in the C compiler output   >
                    :
                    :
        .CALL                   ;   (2)
        BL      one,2           ;
        NOP                     ;
                    :
                    :
  < calls to system process termination procedures    >
  < these would not appear in the C compiler output   >
                    :
                    :
        LDW     -68(0,30),2     ;   (18)
        BV      0(2)            ;
        .EXIT                   ;   (c)
        LDO     -48(30),30      ;
        .PROCEND   ; in=24,25,26;

        .SPACE  $TEXT$                          (a)
        .SUBSPA $CODE$

        .EXPORT mul,ARGW0=GR,ARGW1=GR,RTIVAL=GR (d) 
                    :
                    :
            < .EXPORT list continues >

            < .IMPORT list begins    >          (e)
                    :
        .IMPORT $$muloI,MILLICODE
        .END




A.3 FORTRAN Source Code


A.5 Code Description