Annotation of lucent/sys/src/libmach/6.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * 960 definition
                      3:  */
                      4: #include <u.h>
                      5: #include <bio.h>
                      6: #include <mach.h>
                      7: 
                      8: #define        MINREG  0
                      9: #define        MAXREG  0
                     10: 
                     11: #define USIZE          0x1000
                     12: #define UR(x)          (USIZE-((32)*4)+4*(x))
                     13: 
                     14: /*
                     15:  *  until we decide how we'll take faults, we really
                     16:  *  don't know what the saved regs will look like.
                     17:  *  this is just a guess. -- presotto
                     18:  */
                     19: #define SP     UR(29)
                     20: #define PC     UR(30)
                     21: #define        R4      UR(4)
                     22: 
                     23: Reglist i960reglist[] = {
                     24:        { "R0",         UR(0), RINT, 'X'},
                     25:        { "R1",         UR(1), RINT, 'X'},
                     26:        { "R2",         UR(2), RINT, 'X'},
                     27:        { "R3",         UR(3), RINT, 'X'},
                     28:        { "R4",         UR(4), RINT, 'X'},
                     29:        { "R5",         UR(5), RINT, 'X'},
                     30:        { "R6",         UR(6), RINT, 'X'},
                     31:        { "R7",         UR(7), RINT, 'X'},
                     32:        { "R8",         UR(8), RINT, 'X'},
                     33:        { "R9",         UR(9), RINT, 'X'},
                     34:        { "R10",        UR(10), RINT, 'X'},
                     35:        { "R11",        UR(11), RINT, 'X'},
                     36:        { "R12",        UR(12), RINT, 'X'},
                     37:        { "R13",        UR(13), RINT, 'X'},
                     38:        { "R14",        UR(14), RINT, 'X'},
                     39:        { "R15",        UR(15), RINT, 'X'},
                     40:        { "R16",        UR(16), RINT, 'X'},
                     41:        { "R17",        UR(17), RINT, 'X'},
                     42:        { "R18",        UR(18), RINT, 'X'},
                     43:        { "R19",        UR(19), RINT, 'X'},
                     44:        { "R20",        UR(20), RINT, 'X'},
                     45:        { "R21",        UR(21), RINT, 'X'},
                     46:        { "R22",        UR(22), RINT, 'X'},
                     47:        { "R23",        UR(23), RINT, 'X'},
                     48:        { "R24",        UR(24), RINT, 'X'},
                     49:        { "R25",        UR(25), RINT, 'X'},
                     50:        { "R26",        UR(26), RINT, 'X'},
                     51:        { "TMP",        UR(27), RINT, 'X'},
                     52:        { "SB",         UR(28), RINT, 'X'},
                     53:        { "SP",         SP, RINT, 'X'},
                     54:        { "PC",         PC, RINT, 'X'},
                     55:        { "R31",        UR(31), RINT, 'X' },
                     56:        {  0 }
                     57: };
                     58: 
                     59: Mach mi960 =
                     60: {
                     61:        "960",
                     62:        MI960,          /* machine type */
                     63:        i960reglist,            /* register list */
                     64:        MINREG,         /* minimum register */
                     65:        MAXREG,         /* maximum register */
                     66:        "PC",
                     67:        "SP",
                     68:        0,              /* link register */
                     69:        R4,             /* return register */
                     70:        0x1000,         /* page size */
                     71:        0x80000000,     /* kernel base */
                     72:        0,              /* kernel text mask */
                     73:        0,              /* offset of ksp in /proc/proc */
                     74:        0,              /* correction to ksp value */
                     75:        4,              /* offset of kpc in /proc/proc */
                     76:        0,              /* correction to kpc value */
                     77:        0,              /* offset in ublk of syscall #*/
                     78:        1,              /* quantization of pc */
                     79:        "setSB",        /* static base register name */
                     80:        0,              /* value */
                     81:        4,              /* szaddr */
                     82:        4,              /* szreg */
                     83:        4,              /* szfloat */
                     84:        8,              /* szdouble */
                     85: };

unix.superglobalmegacorp.com

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