Annotation of 43BSDReno/sys/tahoealign/Aemul.c, revision 1.1

1.1     ! root        1: /*     Aemul.c 1.1     86/07/20        */
        !             2: 
        !             3: 
        !             4: #include "../tahoealign/align.h"
        !             5: emul(infop)    process_info *infop;
        !             6: /*
        !             7: /*     Extended precision multiplication.
        !             8: /*
        !             9: /***************************************/
        !            10: {
        !            11:        register long Register_12;      /* multiplicand */
        !            12:        register long Register_11;      /* product least */
        !            13:        register long Register_10;      /* product most */
        !            14:        register long Register_9;       /* addend */
        !            15:        register long Register_8;       /* multiplier */
        !            16:        quadword result;
        !            17: 
        !            18:        Register_8 = operand(infop, 0)->data;
        !            19:        Register_12 = operand(infop, 1)->data;
        !            20:        Register_9 = operand(infop, 2)->data;
        !            21:        Register_10=psl;
        !            22:        Set_psl(r10);   /* restore the user psl */
        !            23:        asm ("  emul    r8,r12,r9,r10");
        !            24:        asm ("  movpsl  r8");
        !            25:        New_cc (Register_8);
        !            26:        result.high = Register_10;
        !            27:        result.low  = Register_11;
        !            28:        write_quadword (infop, result, operand(infop, 3));
        !            29: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.