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/trunk/src/compiler/CodeGen/hppa/hppaMask.sml
ViewVC logotype

Annotation of /sml/trunk/src/compiler/CodeGen/hppa/hppaMask.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 168 - (view) (download)

1 : monnier 16 (* hppaMask.sml
2 :     *
3 :     * COPYRIGHT (c) 1996 Bell Laboratories.
4 :     *
5 :     *)
6 :    
7 :     structure HppaMask : REGMASK = struct
8 :    
9 :     fun error msg = ErrorMsg.impossible ("HppaMask." ^ msg)
10 :    
11 :     val sentinel = Word.fromInt ~1
12 :     val regMap = Array.array(32, sentinel)
13 :     val _ = app (fn (i,j) => Array.update(regMap,i,j))
14 :     [( 9, 0w0), (* stdlink *)
15 :     (10, 0w1), (* stdclos *)
16 :     (11, 0w2), (* stdarg *)
17 :     (12, 0w3), (* stdcont *)
18 :     ( 1, 0w4), (* misc0 *)
19 :     (13, 0w5), (* misc1 *)
20 :     (14, 0w6), (* ... *)
21 :     (15, 0w7),
22 :     (16, 0w8),
23 :     (17, 0w9),
24 :     (18, 0w10),
25 :     (19, 0w11),
26 :     (22, 0w12),
27 :     (23, 0w13),
28 :     (24, 0w14),
29 :     (25, 0w15),
30 :     (26, 0w16),
31 :     (28, 0w17),
32 : monnier 106 (2, 0w18),
33 :     (21, 0w19)]
34 :    
35 : monnier 16 handle _ => error "setting regMap"
36 :    
37 :    
38 :     fun regMask(reg, mask) = let
39 :     val bit = Array.sub(regMap, reg)
40 :     in
41 :     if bit= sentinel then error ("regMask - " ^ Int.toString reg)
42 :     else Word.orb(mask,Word.<<(0w1,bit))
43 : monnier 167 end
44 : monnier 16
45 :     fun memMask _ = error "memMask"
46 :     end
47 :    
48 :    
49 :     (*
50 : monnier 167 * $Log: hppaMask.sml,v $
51 :     * Revision 1.4 1998/10/19 13:50:43 george
52 :     * *** empty log message ***
53 :     *
54 :     * Revision 1.3 1998/05/23 14:09:23 george
55 :     * Fixed RCS keyword syntax
56 :     *
57 : monnier 16 *)

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