|
|
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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.