Annotation of 43BSDTahoe/sys/tahoealign/align.c, revision 1.1.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.