Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/branches/SMLNJ/src/compiler/CodeGen/alpha32/alpha32CpsRegs.sml
ViewVC logotype

Annotation of /sml/branches/SMLNJ/src/compiler/CodeGen/alpha32/alpha32CpsRegs.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 93 - (view) (download)

1 : monnier 16 (* alpha32CpsRegs.sml --- CPS registers used on the DEC Alpha
2 :     *
3 :     * COPYRIGHT (c) 1996 AT&T Bell Laboratories.
4 :     *
5 :     *)
6 :    
7 :     structure Alpha32CpsRegs : CPSREGS =
8 :     struct
9 :     structure T = Alpha32MLTree
10 :     structure SL = SortedList
11 :     fun upto (from,to) = if from>to then [] else from::(upto (from+1,to))
12 :     infix upto
13 :    
14 :     val stdarg = T.REG 0
15 :     val stdcont = T.REG 1
16 :     val stdclos = T.REG 2
17 :     val stdlink = T.REG 3
18 :     val baseptr = T.REG 4
19 :     val maskreg = T.REG 5
20 :    
21 :     val limitptr = T.REG 9
22 :     val varptr = T.REG 10
23 :     val exhaustedR = 11
24 :     val exhausted = T.CC exhaustedR
25 :     val storeptr = T.REG 12
26 :     val allocptr = T.REG 13
27 :     val exnptr = T.REG 14
28 :    
29 :     val gclinkreg = T.REG 26
30 :     val stackptr = T.REG 30
31 :    
32 :     val miscregs = map T.REG ((6 upto 8) @ (16 upto 25) @ [27])
33 :     val calleesave = Array.fromList(miscregs)
34 :     val floatregs = map T.FREG (0 upto 28)
35 :     val savedfpregs = []
36 :    
37 :     val allRegs = SL.uniq(0 upto 31)
38 :    
39 :     val availR =
40 :     map (fn T.REG r => r)
41 :     ([gclinkreg, maskreg, T.REG exhaustedR,
42 :     stdlink, stdclos, stdarg, stdcont] @ miscregs)
43 :     val dedicatedR = SL.remove(SL.uniq availR, allRegs)
44 :    
45 :     val availF = 0 upto 28
46 :     val dedicatedF = [29, 30, 31]
47 :     end
48 :    
49 :     (*
50 :     * $Log: alpha32CpsRegs.sml,v $
51 : monnier 93 * Revision 1.1.1.1 1998/04/08 18:39:54 george
52 :     * Version 110.5
53 : monnier 16 *
54 :     *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0