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/MLRISC/flowgraph/pseudo-ops-basis-typ.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/flowgraph/pseudo-ops-basis-typ.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1012 - (view) (download)

1 : george 984 (* pseudo-ops-basis-typ.sml
2 :     *
3 :     * COPYRIGHT (c) 2001 Bell Labs, Lucent Technologies
4 :     *
5 :     * Representation of pseudo-ops.
6 :     *)
7 :    
8 :     structure PseudoOpsBasisTyp = struct
9 :     datatype ('labexp, 'ext) pseudo_op =
10 :    
11 :     (*
12 :     * ALIGN_SZ aligns on a 2^n boundary.
13 :     *
14 :     * ALIGN_ENTRY forces alignment on an instruction cache line
15 :     * boundary, and ALIGN_LABEL is used for internal labels
16 :     * (such as loops) and may only align if a small (architecture
17 :     * determined) number of nops are required
18 :     *)
19 :     ALIGN_SZ of int
20 :     | ALIGN_ENTRY
21 :     | ALIGN_LABEL
22 :    
23 :     (*
24 :     * Labels for data pseudo-ops.
25 :     * All code labels should not be generated as pseudo-ops.
26 :     *)
27 :     | DATA_LABEL of Label.label
28 :    
29 :     (*
30 :     * The usual text and data sections.
31 :     * Sections are not allowed inside a text segment
32 :     *)
33 :     | DATA_READ_ONLY
34 : george 1012 | DATA
35 :     | BSS
36 : george 984 | TEXT
37 :     | SECTION of Atom.atom
38 : george 1012
39 : george 984 (*
40 :     * May have to rethink this one!
41 :     * For now, all instructions following a NOREORDER pseudo-op
42 :     * are preserved in the order they were generated, until
43 :     * a REORDER pseudo-op is seen.
44 :     *
45 :     * Perhaps what we also want a BARRIER pseudo-op that says
46 :     * no instructions must be moved above or below the barrier.
47 :     *)
48 :     | REORDER
49 :     | NOREORDER
50 :    
51 :     (*
52 :     * Constant integral data
53 :     *)
54 :     | INT of {sz : int, i: 'labexp list}
55 :    
56 :     (*
57 :     * Strings and zero terminated strings
58 :     *)
59 :     | ASCII of string
60 :     | ASCIIZ of string
61 :    
62 : george 1012 (*
63 :     * allocate uninitialized data space with size in bytes
64 :     *)
65 :     | SPACE of int
66 :    
67 : george 984 (*
68 :     * Constant real data
69 :     *)
70 :     | FLOAT of {sz : int, f : string list}
71 :    
72 :     (*
73 :     * Import and export identifiers
74 :     *)
75 :     | IMPORT of Label.label list
76 :     | EXPORT of Label.label list
77 :    
78 :     (*
79 :     * Client specific pseudo-ops
80 :     * All these pseudo-ops must be related to data
81 :     * and not code!
82 :     *)
83 :     | EXT of 'ext
84 :     end

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