2009-07-22 H.J. Lu <hongjiu.lu@intel.com>
[binutils.git] / binutils / sysroff.info
blob390fe4201ba1fcee0556508f101e12dacaab8d47
1 ("cs" 0x0
2  (("size") (1 byte) ("size"))
4  (("hd") (1 byte) ("hd"))
5  (("hs") (1 byte) ("hs"))
6  (("un") (1 byte) ("un"))
7  (("us") (1 byte) ("us"))
9  (("sc") (1 byte) ("sc"))
10  (("ss") (1 byte) ("ss"))
11  (("er") (1 byte) ("er"))
12  (("ed") (1 byte) ("ed"))
14  (("sh") (1 byte) ("sh"))
15  (("ob") (1 byte) ("ob"))
16  (("rl") (1 byte) ("rl"))
17  (("du") (1 byte) ("du"))
19  (("dps") (1 byte) ("dps"))
20  (("dsy") (1 byte) ("dsy"))
21  (("dty") (1 byte) ("dty"))
22  (("dln") (1 byte) ("dln"))
24  (("dso") (1 byte) ("dso"))
25  (("dus") (1 byte) ("dus"))
26  (("dss") (1 byte) ("dss"))
27  (("dbt") (1 byte) ("dbt"))
29  (("dpp") (1 byte) ("dpp"))
30  (("dfp") (1 byte) ("dfp"))
31  (("den") (1 byte) ("den"))
32  (("dds") (1 byte) ("dds"))
34  (("dar") (1 byte) ("dar"))
35  (("dpt") (1 byte) ("dpt"))
36  (("dul") (1 byte) ("dul"))
37  (("dse") (1 byte) ("dse"))
39  (("dot") (1 byte) ("dot")))
42 ("hd" 0x04
43  (("module type") (4 bits) ("mt")
44   (("MTYPE_ABS_LM"      "0")
45    ("MTYPE_REL_LM"      "1")
46    ("MTYPE_OMS_OR_LMS"  "2")
47    ("MTYPE_UNSPEC"      "0xf")))
48  (("spare")(4 bits) ("spare1"))
49  (("creation date")( chars 12 bytes)( "cd"))
50  (("number of units") (2 bytes) ("nu"))
51  (("code") (1 byte) ("code"))
52  (("version") (chars 4 bytes) ("ver"))
53  (("address update") (1 byte) ("au"))
54  (("segment identifier") (1 bit) ("si"))
55  (("address field length") (4 bits) ("afl"))
56  (("spare")(3 bits) ("spare2"))
57  (("space size within segment") (1 byte) ("spcsz"))
58  (("segment size")      (1 byte) ("segsz"))
59  (("segment shift")     (1 byte) ("segsh"))
60  (("entry point")       (1 byte) ("ep"))
61  (cond "ptr->ep"
62        (cond "ptr->mt != MTYPE_ABS_LM" 
63              (("unit appearance number") (2 bytes) ("uan"))
64              (("section appearance number") (2 bytes) ("sa")))
65        (cond "segmented_p"
66              (("segment address") (segsize bytes) ("sad")))
67        (("address") (addrsize bytes) ("address")))
68  (("os name") (chars variable bytes) ("os"))
69  (("sys name") (chars variable bytes) ("sys"))
70  (("module name") (chars variable bytes) ("mn"))
71  (("cpu") (chars variable bytes) ("cpu")))
74 ("hs" 0x05
75  (("neg number") (2 bytes) ("neg")))
78 ("un" 0x06
79  (("format") (2 bits) ("format")
80   (("FORMAT_LM" "0")
81    ("FORMAT_OM" "1")
82    ("FORMAT_OMS_OR_LMS" "2")))
83  (("spare") (6 bits) ("spare1"))
84  (("number of sections") (2 bytes) ("nsections"))
85  (("number of external refs") (2 bytes) ("nextrefs"))
86  (("number of external defs") (2 bytes) ("nextdefs"))
87  (("unit name") (chars variable byte) ("name"))
88  (("tool name") (chars variable byte) ("tool"))
89  (("creation date") (chars 12 bytes) ("tcd"))
90  (("linker name") (chars variable byte) ("linker"))
91  (("creation date") (chars 12 bytes) ("lcd")))
94 ("us" 0x07
95  (("negotiation number") (2 bytes) ("neg")))
98 ("sc" 0x08
99  (("format") (2 bits) ("format"))       
100  (("spare") (6 bits) ("spare"))
101  (("segment address") (segsize bytes) ("segadd"))
102  (("address") (addrsize bytes) ("addr"))
103  (("length") (addrsize bytes) ("length"))
104  (("alignment") (addrsize bytes) ("align"))
105  (("contents") (4 bits) ("contents")
106   (("CONTENTS_CODE" "0")
107    ("CONTENTS_DATA" "1")
108    ("CONTENTS_STACK" "2")
109    ("CONTENTS_DUMMY" "3")
110    ("CONTENTS_SPECIAL" "4")
111    ("CONTENTS_NONSPEC" "0xf")))
112  (("concat") (4 bits) ("concat")
113   (("CONCAT_SIMPLE" "0")
114    ("CONCAT_SHAREDC" "1")
115    ("CONCAT_DUMMY" "2")
116    ("CONCAT_GROUP" "3")
117    ("CONCAT_SHARED" "4")
118    ("CONCAT_PRIVATE" "5")
119    ("CONCAT_UNSPEC" "0xf")))
120  (("read") (2 bits) ("read"))
121  (("write") (2 bits) ("write"))
122  (("exec") (2 bits) ("exec"))
123  (("initialized") (2 bits) ("init"))
124  (("mode") (2 bits) ("mode"))
125  (("spare") (6 bits) ("spare1"))
126  (("name") (chars variable byte) ("name")))
129 ("ss" 0x09
130  (("neg number") (2 bytes) ("neg")))
132         
133 ("er" 0x0c
134  (("symbol type") (2 bits) ("type")
135   (("ER_ENTRY" "0")
136    ("ER_DATA" "1")
137    ("ER_NOTDEF" "2")
138    ("ER_NOTSPEC" "3")))
139  (("spare") (6 bits) ("spare"))
140  (("symbol name") (chars variable byte) ("name")))
141         
143 ("ed" 0x14
144  (("section appearance number") (2 bytes) ("section"))
145  (("symbol type") (3 bits) ("type")
146   (("ED_TYPE_ENTRY" "0")
147    ("ED_TYPE_DATA" "1")
148    ("ED_TYPE_CONST" "2")
149    ("ED_TYPE_NOTSPEC" "7")))
150  (("spare") (5 bits) ("spare"))
151  (cond "ptr->type==ED_TYPE_ENTRY || ptr->type==ED_TYPE_DATA"
152        (("symbol address") (addrsize bytes) ("address")))
153  (cond "ptr->type==ED_TYPE_CONST"
154        (("constant value") (addrsize bytes) ("constant")))
155  (("symbol name") (chars variable byte) ("name")))
158 ("sh" 0x1a
159  (("unit appearance number") (2 bytes) ("unit"))
160  (("section appearance number") (2 bytes) ("section")))
163 ("ob" 0x1c
164  (("starting address flag") (1 bit) ("saf"))
165  (("compression flag") (1 bit) ("cpf"))
166  (("spare") (6 bits) ("spare"))
167  (cond "ptr->saf"
168        ( ("starting address") (addrsize bytes) ("address")))
169  (cond "ptr->cpf"
170        (("comp reps") (addrsize bytes) ("compreps")))
171  (("data") (barray counted byte) ("data")))
172         
174 ("rl" 0x20
175  (("boundary of relocatable area") (4 bits) ("boundary"))
176  (("address polarity") (1 bit) ("apol"))
177  (("segment number") (1 bit) ("segment"))
178  (("sign of relocation") (1 bit) ("sign"))
179  (("check range") (1 bit) ("check"))
180  (("reloc address") (addrsize bytes) ("addr"))
182  (("bit loc") (1 byte) ("bitloc"))
183  (("field length") (1 byte) ("flen"))
184  (("bcount") (1 byte) ("bcount"))
185  (("operator") (1 byte) ("op")
186   (("OP_RELOC_ADDR" "1")
187    ("OP_SEC_REF" "0")
188    ("OP_EXT_REF" "2")))
189  (cond "ptr->op == OP_EXT_REF"
190        (("symbol number") (2 bytes) ("symn"))   )
191         
192  (cond "ptr->op == OP_SEC_REF"
193        (("section number") (2 bytes) ("secn"))
194        (("const opcode") (1 byte) ("copcode_is_3"))
195        (("addend length") (1 byte) ("alength_is_4"))
196        (("addend") (4 byte) ("addend"))
197        (("plus opcode") (1 byte) ("aopcode_is_0x20")))
199  (cond "ptr->op == OP_RELOC_ADDR"
200        (("dunno") (2 bytes) ("dunno")))
202  (("end")  (1 byte) ("end")))
203         
205 ("du" 0x30
206  (("format") (2 bits) ("format"))
207  (("optimized") (1 bit) ("optimized"))
208  (("stackfrmt") (2 bits) ("stackfrmt"))
209  (("spare") (3 bits) ("spare"))
210  (("unit number") (2 bytes) ("unit"))
211  (("sections") (2 bytes) ("sections"))
212  (repeat "ptr->sections"
213          (("section appearance number") (2 bytes) ("san"))
214          (("address") (addrsize bytes) ("address"))
215          (("section length") (addrsize bytes) ("length")))
216  (("tool name") (chars variable byte) ("tool"))
217  (("creation date") (chars 12 bytes) ("date")))
220 ("dsy" 0x34
221  (("symbol type") (7 bits) ("type")
222   (("STYPE_VAR" "0")
223    ("STYPE_LAB" "1")
224    ("STYPE_PROC" "2")
225    ("STYPE_FUNC" "3")
226    ("STYPE_TYPE" "4")
227    ("STYPE_CONST" "5")
228    ("STYPE_ENTRY" "6")
229    ("STYPE_MEMBER" "7")
230    ("STYPE_ENUM" "8")
231    ("STYPE_TAG" "9")
232    ("STYPE_PACKAGE" "10")
233    ("STYPE_GENERIC" "11")
234    ("STYPE_TASK" "12")
235    ("STYPE_EXCEPTION" "13")
236    ("STYPE_PARAMETER" "14")
237    ("STYPE_EQUATE" "15")
238    ("STYPE_UNSPEC" "0x7f")))
239  (("assignment info") (1 bit) ("assign"))
240  (("symbol id") (2 bytes) ("snumber"))
241  (("symbol name") (chars variable bytes) ("sname"))
242  (("nesting level") (2 bytes) ("nesting"))
243  (cond "ptr->assign"
244        (("assignment type") (1 byte)  ("ainfo")
245         (("AINFO_REG" "1")
246          ("AINFO_STATIC_EXT_DEF" "2")
247          ("AINFO_STATIC_EXT_REF" "3")
248          ("AINFO_STATIC_INT" "4")
249          ("AINFO_STATIC_COM" "5")
250          ("AINFO_AUTO" "6")
251          ("AINFO_CONST" "7")
252          ("AINFO_UNSPEC" "0xff")))
253        (("data length") (addrsize bytes) ("dlength"))
254        (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
255             || ptr->ainfo == AINFO_STATIC_INT
256             || ptr->ainfo == AINFO_STATIC_COM"
257              (("section number")  (2 bytes) ("section")))
258        (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
259             || ptr->ainfo == AINFO_STATIC_INT
260             || ptr->ainfo == AINFO_STATIC_COM
261             || ptr->ainfo == AINFO_AUTO"
262              (("address") (addrsize bytes) ("address")))
263        (cond "ptr->ainfo == AINFO_REG"
264              (("register name") (chars variable bytes) ("reg")))
265        (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
266             || ptr->ainfo == AINFO_STATIC_EXT_REF"
267              (("external name") (chars variable bytes) ("ename")))
268        (cond "ptr->ainfo == AINFO_CONST"
269              (("constant") (chars variable bytes) ("constant"))))
270  (cond "ptr->type == STYPE_MEMBER"
271        (("assignment unit") (1 bit) ("bitunit"))
272        (("spare") (7 bits) ("spare2"))
273        (("field length") (addrsize bytes) ("field_len"))
274        (("field offset") (addrsize bytes) ("field_off"))
275        (cond "ptr->bitunit"
276              (("bit offset") (addrsize bytes) ("field_bitoff"))))
277  (cond "ptr->type== STYPE_ENUM"
278        (("value length") (1 byte) ("evallen"))
279        (("value") (4 bytes) ("evalue")))
280  (cond "ptr->type == STYPE_CONST"
281        (("value") (chars variable bytes) ("cvalue")))
282  (cond "ptr->type == STYPE_EQUATE"
283        (("value length") (1 byte) ("qvallen"))
284        (("value") (4 bytes) ("qvalue"))
285        (("basic type") (1 byte) ("btype"))
286        (("size information") (addrsize bytes) ("sizeinfo"))
287        (("sign") (2 bits) ("sign"))
288        (("floating point type") (6 bits) ("flt_type")))
289  (("source file number") (2 bytes) ("sfn"))
290  (("source line number") (2 bytes) ("sln"))
291  (("negotiation number") (2 bytes) ("neg"))
292  (cond "ptr->type == STYPE_TAG"
293        (("magic") (1 byte) ("magic"))))
297 ("dul" 0x52
298  (("max declaration type flag") (1 bit) ("max_variable"))
299  (("max spare") (7 bits) ("maxspare"))
300  (cond "ptr->max_variable == 0"
301        (("maximum") (addrsize bytes) ("max"))
302        (("max mode") (chars variable bytes) ("maxmode")))
304  (("min declaration type flag") (1 bit) ("min_variable"))
305  (("min spare") (7 bits) ("minspare"))
306  (cond "ptr->min_variable == 0"
307        (("minimum") (addrsize bytes) ("min"))
308        (("min mode") (chars variable bytes) ("minmode"))))
311 ("dty" 0x36
312  (("end flag") (1 bit) ("end"))
313  (("spare") (7 bits) ("spare"))
314  (cond "!ptr->end"
315        (("negotiation") (2 bytes) ("neg"))))
318 ("dbt" 0x44
319  (("basic type") (1 byte) ("btype")
320   (("BTYPE_VOID" "0")
321    ("BTYPE_UNDEF" "1")
322    ("BTYPE_CHAR" "2")
323    ("BTYPE_INT" "3")
324    ("BTYPE_FLOAT" "4")
325    ("BTYPE_BIT" "5")
326    ("BTYPE_STRING" "6")
327    ("BTYPE_DECIMAL" "7")
328    ("BTYPE_ENUM" "8")
329    ("BTYPE_STRUCT" "9")
330    ("BTYPE_TYPE" "10")
331    ("BTYPE_TAG" "11")
332    ("BTYPE_UNSPEC" "0xff")))
333  (("size info") (addrsize bytes) ("bitsize"))
334  (("sign") (2 bits) ("sign")
335   (("SIGN_SIGNED" "0")
336    ("SIGN_UNSIGNED" "1")
337    ("SIGN_UNSPEC" "3")))
338  (("floating point type") (6 bits) ("fptype")
339   (("FPTYPE_SINGLE" "0")
340    ("FPTYPE_DOUBLE" "1")
341    ("FPTYPE_EXTENDED" "2")
342    ("FPTYPE_NOTSPEC" "0x3f")))
343  (cond "ptr->btype==BTYPE_TAG || ptr->btype == BTYPE_TYPE"
344        (("symbol id") (2 bytes) ("sid")))
345  (("negotiation") (2 bytes) ("neg")))
347 ("dar" 0x4e
348  (("element length" ) (addrsize bytes) ("length"))
349  (("dims") (1 byte) ("dims"))
350  (repeat "ptr->dims"
351          (("variable flag") (1 bit) ("variable")
352           (("VARIABLE_FIXED" "0")
353            ("VARIABLE_VARIABLE" "1")))
355          (("subscript type") (1 bit) ("subtype")
356           (("SUB_INTEGER" "0")
357            ("SUB_TYPE"    "1")))
359          (("spare") (6 bits) ("spare"))
361          (cond "ptr->subtype[n] == SUB_TYPE"
362                (("sub symbol id") (2 bytes) ("sid")))
364          (cond "ptr->subtype[n] == SUB_INTEGER"
365                (("max declaration type flag") (1 bit) ("max_variable"))
366                (("max spare") (7 bits) ("maxspare"))
367                ;; FIXME: next field should be conditional on max_variable,
368                (("maximum") (addrsize bytes) ("max"))
370                (("min declaration type flag") (1 bit) ("min_variable"))
371                (("min spare") (7 bits) ("minspare"))
372                ;; FIXME: next field should be conditional on min_variable
373                (("minimum") (addrsize bytes) ("min"))))
374  (("negotiation") (2 bytes) ("neg")))
376                
377 ("dso" 0x3a
378  (("function name") (2 bytes) ("sid"))
379  (("sp update count") (4 bytes) ("spupdates"))
380  (repeat "ptr->spupdates"
381          (("update address") (addrsize bytes) ("address"))
382          (("offset") (addrsize bytes) ("offset"))))
384 ("dln" 0x38
385  (("number of lines") (2 bytes) ("nln"))
386  (repeat "ptr->nln"
387          (("source file number") (2 bytes) ("sfn"))
388          (("source line number") (2 bytes) ("sln"))
389          (("section number") (2 bytes) ("section"))
390          (("from address") (addrsize bytes) ("from_address"))
391          (("to address") (addrsize bytes) ("to_address"))
392          (("call count") (2 bytes) ("cc"))
393          )
394  (("neg") (2 bytes) ("neg")))
396 ("dpp" 0x46
397  (("start/end") (1 bit) ("end"))
398  (("spare") (7 bits) ("spare"))
399  (cond "!ptr->end"
400        (("params") (1 byte) ("params"))
401        (("neg number") (2 bytes) ("neg"))))
403 ("den" 0x4a
404  (("start/end") (1 bit) ("end"))
405  (("spare") (7 bits) ("spare"))
406  (cond "!ptr->end"
407        (("neg number") (2 bytes) ("neg"))))
409 ("dfp" 0x48
410  (("start/end flag") (1 bit) ("end"))
411  (("spare") (7 bits) ("spare"))
412  (cond "!ptr->end"
413        (("number of parameters") (1 byte) ("nparams"))
414        (("neg number") (2 bytes) ("neg"))))
416 ("dds" 0x4c
417  (("start/end") (1 bit) ("end"))
418  (("spare") (7 bits) ("spare"))
419  (cond "!ptr->end"
420        (("neg number") (2 bytes) ("neg"))))
422 ("dpt" 0x50
423  (("neg number") (2 bytes) ("neg"))
424  (("dunno") (1 byte) ("dunno")))
426 ("dse" 0x54
427  (("neg number") (2 bytes) ("neg"))
428  (("dunno") (1 byte) ("dunno")))
430 ("dot" 0x56
431  (("unknown") (1 byte) ("unknown")))
432 ; FIXME: unknown field should be repeated symbol number?
435 ("dss" 0x42
436  (("type") (1 byte) ("type"))
437  (("external/internal") (1 bit) ("internal"))
438  (("spare") (7 bits) ("spare"))
439  (cond "!ptr->internal"
440        (  ("package name") (chars variable byte) ("package")))
441  (cond "ptr->internal"
442        (("symbol id") (2 bytes) ("id")))
443  (("record type") (2 bytes) ("record"))
444  (("rules") (chars variable byte) ("rules"))
445  (("number of symbols") (2 bytes) ("nsymbols"))
446  (("unknown" ) (2 bytes) ("fixme")))
447      
448 ("pss" 0x40
449  (("negotiation number") (2 bytes) ("efn"))
450  (("number of source files") (2 bytes) ("ns"))
451  (repeat "ptr->ns"
452          (("directory reference bit") (1 bit) ("drb"))
453          (("spare") (7 bits) ("spare"))
454          (("completed file name") (chars variable byte) ("fname"))
455          (cond "ptr->drb[n]" 
456                (("directory apperance number") (2 bytes) ("dan"))))
458  (("number of directories") (2 bytes) ("ndir"))
459  (repeat "ptr->ndir"
460          (("directory name") (chars variable bytes) ("dname"))))
463 ; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared 
464 ; to deal with that.
465 ; ("tr" 0x7f)
468 ("dus" 0x40
469  (("negotiation number") (2 bytes) ("efn"))
470  (("number of source files") (2 bytes) ("ns"))
471  (repeat "ptr->ns"
472          (("directory reference bit") (1 bit) ("drb"))
473          (("spare") (7 bits) ("spare"))
474          (("completed file name") (chars variable byte) ("fname"))
475          (cond "ptr->drb[n]" 
476                (("directory apperance number") (2 bytes) ("dan"))))
477  (("number of directories") (2 bytes) ("ndir"))
478  (repeat "ptr->ndir"
479          (("directory name") (chars variable bytes) ("dname"))))
482 ("dps" 0x32
483  (("start/end flag") (1 bit) ("end"))
484  (("block type") (7 bits) ("type")
485   (("BLOCK_TYPE_COMPUNIT" "0")
486    ("BLOCK_TYPE_PROCEDURE" "2")
487    ("BLOCK_TYPE_FUNCTION" "3")
488    ("BLOCK_TYPE_BLOCK" "4")
489    ("BLOCK_TYPE_BASIC" "9")))
490  (cond "!ptr->end"
491        (("optimization") (1 byte) ("opt"))
492        (("section number") (2 bytes) ("san"))
493        (("address") (addrsize bytes) ("address"))
494        (("block size") (addrsize bytes) ("block_size"))
495        (("nesting") (1 byte) ("nesting"))
496        (cond "ptr->type == BLOCK_TYPE_PROCEDURE 
497             || ptr->type == BLOCK_TYPE_FUNCTION"
498              (("return address") (1 bit) ("retaddr"))
499              (("interrupt function flag") (1 bit) ("intrflag"))
500              (("stack update flag") (1 bit) ("stackflag"))
501              (("intra page JMP") (1 bit) ("intrpagejmp"))
502              (("spare") (4 bits) ("spare")))
503        (("neg number") (2 bytes) ("neg"))))