Annotation of 43BSDTahoe/sys/tahoealign/align.c, revision 1.1

1.1     ! root        1: /*     align.c 1.1     86/07/20        */
        !             2: 
        !             3: #include       "../tahoealign/align.h"
        !             4: 
        !             5: /*
        !             6:  * Part of the parameter list is set up by locore.s.
        !             7:  * First 2 dummy variables MUST BE the first local
        !             8:  * variables; leaving place for registers 0 and 1
        !             9:  * which are not preserved by the current C compiler.
        !            10:  * Then, the array of structures and the last_operand
        !            11:  * HAVE to be in the given order, to correspond to the
        !            12:  * description of process_info in 'alignment.h'. 
        !            13:  */
        !            14: alignment()
        !            15: {
        !            16:        long    space_4_Register_1;     /* register 1 */
        !            17:        long    space_4_Register_0;     /* register 0 */
        !            18:        struct  oprnd   space_4_decoded[4];
        !            19:        long    space_4_opcode;
        !            20:        long    space_4_last_operand;   /* Last operand # processed */
        !            21:        long    space_4_saved_pc;
        !            22:        long    space_4_saved_sp;
        !            23: 
        !            24:        register process_info *infop;
        !            25: 
        !            26:        infop = (process_info *)&space_4_saved_sp;
        !            27:        saved_pc = pc;
        !            28:        saved_sp = sp;                          /* For possible exceptions */
        !            29: 
        !            30:        last_operand = -1;   /* To get the operand routine going correctly */
        !            31: 
        !            32:        opCODE = 0xff & *(char *)pc;
        !            33:        pc++;
        !            34:        (*Table[opCODE].routine) (infop);       /* Call relevant handler */
        !            35:        /*
        !            36:         * NOTE: nothing should follow, except the return.
        !            37:         * The register variables cannot be trusted anymore,
        !            38:         * if an exception is signalled.  See 'exception.c'
        !            39:         * to understand why.
        !            40:         */
        !            41: }

unix.superglobalmegacorp.com

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