source: branches/qres/ccl/lib/ppcenv.lisp @ 14172

Last change on this file since 14172 was 13070, checked in by gz, 10 years ago

r13066, r13067 from trunk: copyrights etc

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1; -*- Mode:Lisp; Package:CCL; -*-
2;;;
3;;;   Copyright (C) 2009 Clozure Associates
4;;;   Copyright (C) 1994-2001 Digitool, Inc
5;;;   This file is part of Clozure CL. 
6;;;
7;;;   Clozure CL is licensed under the terms of the Lisp Lesser GNU Public
8;;;   License , known as the LLGPL and distributed with Clozure CL as the
9;;;   file "LICENSE".  The LLGPL consists of a preamble and the LGPL,
10;;;   which is distributed with Clozure CL as the file "LGPL".  Where these
11;;;   conflict, the preamble takes precedence. 
12;;;
13;;;   Clozure CL is referenced in the preamble as the "LIBRARY."
14;;;
15;;;   The LLGPL is also available online at
16;;;   http://opensource.franz.com/preamble.html
17
18(in-package "CCL")
19
20(defconstant $numppcsaveregs 8)
21(defconstant $numppcargregs 3)
22
23
24(defconstant ppc-nonvolatile-registers-mask
25  (logior (ash 1 ppc::save0)
26          (ash 1 ppc::save1)
27          (ash 1 ppc::save2)
28          (ash 1 ppc::save3)
29          (ash 1 ppc::save4)
30          (ash 1 ppc::save5)
31          (ash 1 ppc::save6)
32          (ash 1 ppc::save7)))
33
34(defconstant ppc-arg-registers-mask
35  (logior (ash 1 ppc::arg_z)
36          (ash 1 ppc::arg_y)
37          (ash 1 ppc::arg_x)))
38
39(defconstant ppc-temp-registers-mask
40  (logior (ash 1 ppc::temp0)
41          (ash 1 ppc::temp1)
42          (ash 1 ppc::temp2)
43          (ash 1 ppc::temp3)))
44
45
46(defconstant ppc-tagged-registers-mask
47  (logior ppc-temp-registers-mask
48          ppc-arg-registers-mask
49          ppc-nonvolatile-registers-mask))
50
51
52
53(defconstant ppc-temp-node-regs 
54  (make-mask ppc::temp0
55             ppc::temp1
56             ppc::temp2
57             ppc::temp3
58             ppc::arg_x
59             ppc::arg_y
60             ppc::arg_z))
61
62(defconstant ppc-nonvolatile-node-regs
63  (make-mask ppc::save0
64             ppc::save1
65             ppc::save2
66             ppc::save3
67             ppc::save4
68             ppc::save5
69             ppc::save6
70             ppc::save7))
71
72
73(defconstant ppc-node-regs (logior ppc-temp-node-regs ppc-nonvolatile-node-regs))
74
75(defconstant ppc-imm-regs (make-mask
76                            ppc::imm0
77                            ppc::imm1
78                            ppc::imm2
79                            ppc::imm3
80                            ppc::imm4
81                            ppc::imm5))
82
83(defconstant ppc-temp-fp-regs (1- (ash 1 ppc::fp14)))
84                               
85(defconstant ppc-cr-fields
86  (make-mask 0 (ash 4 -2) (ash 8 -2) (ash 12 -2) (ash 16 -2) (ash 20 -2) (ash 24 -2) (ash 28 -2)))
87
88
89
90(defconstant $undo-ppc-c-frame 16)
91
92
93(ccl::provide "PPCENV")
Note: See TracBrowser for help on using the repository browser.