source: branches/working-0711/ccl/lisp-kernel/ppc-constants.h @ 7624

Last change on this file since 7624 was 7624, checked in by gb, 13 years ago

Merge changes form working-0710 branch.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1/*
2   Copyright (C) 1994-2001 Digitool, Inc
3   This file is part of OpenMCL. 
4
5   OpenMCL is licensed under the terms of the Lisp Lesser GNU Public
6   License , known as the LLGPL and distributed with OpenMCL as the
7   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,
8   which is distributed with OpenMCL as the file "LGPL".  Where these
9   conflict, the preamble takes precedence. 
10
11   OpenMCL is referenced in the preamble as the "LIBRARY."
12
13   The LLGPL is also available online at
14   http://opensource.franz.com/preamble.html
15*/
16
17#ifndef __ppc_constants__
18#define __ppc_constants__ 1
19
20/*  Register usage: */
21#define rzero 0
22#define sp 1
23#define linux_sys_reg 2  /* volatile reg on Darwin ; thread ptr on Linux32, TOC on
24                                Linux64. */
25#define imm0 3
26#define imm1 4
27#define imm2 5
28#define imm3 6
29#define imm4 7
30#define imm5 8
31#define allocptr 9
32#define allocbase 10
33#define nargs 11
34#define tsp 12
35#define loc_pc 14               /*  code vector locative */
36#define vsp 15         
37#define fn 16
38#define temp3 17
39#define temp2 18
40#define temp1 19
41#define temp0 20       
42#define arg_x 21
43#define arg_y 22
44#define arg_z 23
45#define save7 24
46#define save6 25
47#define save5 26
48#define save4 27
49#define save3 28
50#define save2 29
51#define save1 30
52#define save0 31
53
54#define vfp save0       /*  frame pointer if needed (stack consing). */
55#define fname temp3
56#define nfn temp2
57#define next_method_context temp1
58#define closure_data temp0
59
60
61#define BA_MASK ((unsigned) ((-1<<26) | (1<<1)))
62#define BA_VAL  ((unsigned) ((18<<26) | (1<<1)))
63
64#define TCR_FLAG_BIT_FOREIGN fixnumshift
65#define TCR_FLAG_BIT_AWAITING_PRESET (fixnumshift+1)
66#define TCR_FLAG_BIT_ALT_SUSPEND (fixnumshift+2)
67#define TCR_FLAG_BIT_PROPAGATE_EXCEPTION (fixnumshift+3)
68#define TCR_FLAG_BIT_SUSPEND_ACK_PENDING (fixnumshift+4)
69#define TCR_FLAG_BIT_PENDING_EXCEPTION (fixnumshift+5)
70#define TCR_FLAG_BIT_FOREIGN_EXCEPTION (fixnumshift+6)
71#define TCR_FLAG_BIT_PENDING_SUSPEND (fixnumshift+7)
72
73#define TCR_STATE_FOREIGN (1)
74#define TCR_STATE_LISP    (0)
75#define TCR_STATE_EXCEPTION_WAIT (2)
76#define TCR_STATE_EXCEPTION_RETURN (4)
77
78#ifdef PPC64
79#include "ppc-constants64.h"
80#else
81#include "ppc-constants32.h"
82#endif
83
84#define dnode_size (node_size*2)
85#define dnode_shift node_shift+1
86
87#define INTERRUPT_LEVEL_BINDING_INDEX (1)
88
89#endif /* __ppc_constants__ */
90
91
Note: See TracBrowser for help on using the repository browser.