⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 womp.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 4 页
字号:
.code break
0x0008: REAL size 0x00000040 bits
.code break
0x0009: COMPLEX size 0x00000040 bits
.code break
0x000a: COMPLEX size 0x00000080 bits
.code break
0x000b: PROCEDURE
    FAR ret_type 0x000c num_parms 00
.code break
0x000c: VOID
.code break
0x000d: SUBRANGE size 0x00000020 bits
    base_type 0x0006(SIGNED) low 0x00000002 high 0x000003e8
.code break
0x000e: ARRAY size 0x00001f38 bits
    base_type 0x0002 index_type 0x000d
.code break
                               Symbol Information
                               ------------------
CHANGE_SEG
    data 00 00 00 00
    fixup SEG_REL  POINTER  Frame: TARGET  Target: SI(0x0007)
.code break
BLOCK name "FMAIN" type 0x000b start_offset 0x00000000 size 0x00000146
    PROLOG size 0b ret_addr_offset 0x0000000c
    MEM_LOC (static) name "NUMBERS" type 0x000e
        data 00 00 00 00
        fixup SEG_REL  POINTER  Frame: TARGET  Target: SI(0x0004)
    BP_OFFSET 0xfffffff6 name "PRIMES" type 0x0006
    BP_OFFSET 0xfffffff2 name "K" type 0x0006
    BP_OFFSET 0xffffffee name "I" type 0x0006
    EPILOG size 09
BLOCK_END
.tinyexam end
:cmt. .do end
:cmt. .if '&machine' eq '80386' .do begin
.np
The following are 32-bit examples.
.tinyexam begin
&prompt.&ccmd32 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 80386
Memory Model    : Flat
Floating-point  : 80x87 Inline Code
Optimized       : Yes
Lines Present   : No
Types Present   : No
Symbs Present   : No
Source Language : Fortran
.tinyexam end
.tinyexam begin
&prompt.&ccmd32 &sw.d1 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 80386
Memory Model    : Flat
Floating-point  : 80x87 Inline Code
Optimized       : Yes
Lines Present   : Yes
Types Present   : No
Symbs Present   : No
Source Language : Fortran
.tinyexam end
.tinyexam begin
&prompt.&ccmd32 &sw.d2 sieve
&prompt.womp &sw.f- &sw.dx sieve
&company Object Module Processor Version 1.1
.cpyrit 1990
.trdmrk
Converting sieve.OBJ
                            Miscellaneous Information
                            -------------------------
Processor       : 80386
Memory Model    : Flat
Floating-point  : 80x87 Inline Code
Optimized       : Yes
Lines Present   : Yes
Types Present   : Yes
Symbs Present   : Yes
Source Language : Fortran
.code break
                                Type Information
                                ----------------
0x0000: RESERVED
.code break
0x0001: RESERVED
.code break
0x0002: INTEGER size 0x00000008 bits UNSIGNED
.code break
0x0003: INTEGER size 0x00000020 bits UNSIGNED
.code break
0x0004: INTEGER size 0x00000008 bits SIGNED
.code break
0x0005: INTEGER size 0x00000010 bits SIGNED
.code break
0x0006: INTEGER size 0x00000020 bits SIGNED
.code break
0x0007: REAL size 0x00000020 bits
.code break
0x0008: REAL size 0x00000040 bits
.code break
0x0009: COMPLEX size 0x00000040 bits
.code break
0x000a: COMPLEX size 0x00000080 bits
.code break
0x000b: PROCEDURE
    NEAR 386 ret_type 0x000c num_parms 00
.code break
0x000c: VOID
.code break
0x000d: SUBRANGE size 0x00000020 bits
    base_type 0x0006(SIGNED) low 0x00000002 high 0x000003e8
.code break
0x000e: ARRAY size 0x00001f38 bits
    base_type 0x0002 index_type 0x000d
.code break
                               Symbol Information
                               ------------------
CHANGE_SEG
    data 00 00 00 00 00 00
    fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0007)
.code break
BLOCK name "FMAIN" type 0x000b start_offset 0x00000000 size 0x000000c3
    PROLOG size 09 ret_addr_offset 0x00000010
    MEM_LOC (static) name "NUMBERS" type 0x000e
        data 00 00 00 00 00 00
        fixup SEG_REL  POINTER386  Frame: GI(0x0002)  Target: SI(0x0004)
    BP_OFFSET 0xfffffff8 name "PRIMES" type 0x0006
    BP_OFFSET 0xfffffff4 name "K" type 0x0006
    BP_OFFSET 0xfffffff0 name "I" type 0x0006
    EPILOG size 05
BLOCK_END
.tinyexam end
:cmt. .do end
.do end
.*
.section WOMP Messages
.*
.np
Many of the error messages that are listed below are unlikely to
appear.
The object module processor is thorough at checking for cases that
fall outside of the range of known object module formats (OMF).
It is prepared to issue a message if such a case appears.
.autonote
.note
.us @Include file is too large (max 64k)
.np
This fatal error message is issued when any WOMP directive file
exceeds more than 64K bytes of text.
The solution is to split the file into smaller files.
.note
.us Access classes (RW, EO, RO, ER) not supported in MS386 OMF
.np
This warning message may be issued when converting Phar Lap Easy OMF
to Microsoft OMF.
Microsoft OMF does not support Read-Write, Execute-Only, Read-Only, or
Execute-Read access classes.
.note
.us ADD_PREV_SEG no longer supported; probable cause: old version of
.us &company C used
.np
This fatal error message is issued when an obsolete debug record
(supported by &company Express C) is encountered.
.note
.us Array too large (%X elements of size %X)
.np
This fatal error message may be issued when converting a debug record
from one format to another.
This message is unlikely to occur since the array must exceed 4
gigabytes in size.
.note
.us ARRAY_DESC types not supported
.np
This warning message may be issued when converting to Microsoft or
Turbo debug records.
This type is used by the &company FORTRAN 77 compiler when the array
bounds are not known at compile time.
.note
.us CHARBLOCK_IND types not supported
.np
This warning message may be issued when converting to Microsoft or
Turbo debug records.
This type is used by the &company FORTRAN 77 compiler when the character
string size is not known at compile time (e.g., CHARACTER *(*) STR).
.note
.us Disk error during %s: %Z
.np
This fatal error message is issued when an error occurs attempting to
read, write, seek, rename or erase a file or when an attempt to spawn
the &libname, &libcmdup, fails.
The file name and a message corresponding to the C "errno" value is
printed.
.note
.us Enumerated type too large to represent
.np
This fatal error message may be issued when converting to Turbo debug
records.
Turbo debug format does not support 32-bit enumerated types.
.note
.us Impossible to translate register variable
.np
This fatal error message may be issued when converting to Turbo debug
records.
Turbo debug format does not support as many register combinations
as &company does.
However, this message is unlikely to be issued since &company presently
does not use any combination that is not supported by Borland.
.note
.us Incompatible version of the debugging information
.np
This fatal error message may be issued when converting a &company 7.0
debug record format and the "p7" option was not specified on the
command line.
It may also be issued when attempting to convert a &company debug record
format that is newer than the version of WOMP being used.
In this case, the solution is to use a more recent version of WOMP.
.note
.us IND_REG not supported; probable cause: function returning a
.us union/struct
.np
This warning message may be issued when converting to Microsoft or
Turbo debug records.
Neither supports a debug record describing a union/struct return
type.
.note
.us Invalid fixup
.np
This fatal error message is issued when an invalid object file record
is encountered.
The probable cause is that file is not an object file.
.note
.us Invalid processor/model COMENT record
.np
This warning message is issued when an invalid processor/model COMENT
record is encountered.
WOMP will assume small model for 16-bit object files and flat model
for 32-bit object files.
.note
.us Maximum object record size (%u byte) exceeded
.np
This fatal error message is issued when an object file record exceeds
the 4 kilobyte limit.
.note
.us More data in LEDATAs than defined in SEGDEF for seg %x
.np
This fatal error message is issued when an invalid object file record
is encountered.
.note
.us Name (%s) too long, truncated.
.np
This warning message is issued when converting an object file record
to Microsoft OMF.
A maximum of 256 bytes (minus the amount of data already in the
record) is allowed.
The long name is simply truncated.
The long name is printed as part of the message.
.note
.us No 4k Page-aligned segments in MS386 OMF
.np
This warning message may be issued when converting Phar Lap Easy OMF
to Microsoft OMF.
WOMP will change the page alignment to 1K.
.note
.us No LIDATAs allowed for &company debug info
.np
This fatal error message is issued when an LIDATA (for a special debug
segment) is encountered.
Neither WOMP nor the &lnkname supports it.
.note
.us No loader resolved fixups allowed in Easy OMF-386
.np
This warning message may be issued when converting Microsoft OMF
to Phar Lap Easy OMF.
WOMP will convert it to a linker resolved fixup.
.note
.us No support for BIG 32-bit SEGDEFs
.np
This fatal error message is issued when a segment that is exactly 4
gigabytes in size is encountered.
.note
.us No support for LTL segments
.np
This fatal error message is issued when a load time locatable segment
is encountered.
Intel OMF describes this type of segment but generally it is not used
in DOS object files.
.note
.us No support for multi-register symbols
.np
This warning message may be issued when converting to Microsoft OMF.
Microsoft OMF does not support symbols in multiple registers.
This type of debug record will not be produced by existing &company
compilers so its appearance should be rare.
.note
.us Object file contains invalid data
.np
This fatal error message is issued when no definitions (SEGDEF,
PUBDEF, GRPDEF, LNAMES, EXTDEF, etc.) are encountered in the object
file.
The probable cause is that the file is not an object file or that it
was incompletely written.
.note
.us Out of memory
.np
This fatal error message is issued when WOMP cannot allocate any more
memory for its data structures.
.note
.us Premature end of file encountered
.np
This fatal error message is issued when WOMP encounters the end of an
object file before the expected MODEND record.
The probable cause is that the object file was incompletely written.
.note
.us Subrange too large to represent
.np
This fatal error message is issued when more than 32 bits is required
for a subrange type.
This message cannot arise from any object file produced by a &company
compiler.
.note
.us THEADR record missing
.np
This fatal error message is issued when the THEADR (translator header)
record is not present as the first record in an object file.
.note
.us Too many registers in aggregate
.np
This fatal error message is issued when more than 4 registers are
required for an aggregate (e.g., AX:BC:CX:DX is a 4-register aggregate
that could be used for 64-bit floating-point items).
This message cannot arise from any object file produced by a &company
compiler.
.note
.us Too many types to continue conversion
.np
This fatal error message is issued when more than 65535 types appear
in an object file.
This situation is unlikely to occur.
.note
.us Unable to CHANGE_SEG inside code block
.np
This fatal error message is issued when a change of code segment
appears inside of a nested scope.
This is invalid in any object file.
.note
.us Unable to open file %s: %Z
.np
This fatal error message is issued when WOMP is unable to open an
object file or a directive file.
The file name and a message corresponding to the C "errno" value is
printed.
.note
.us Unable to process 32-bit repeat count in LIDATA
.np
This fatal error message may be issued when converting from Microsoft
OMF to Phar Lap Easy OMF.
Microsoft OMF allows a 32-bit repeat count while Phar Lap Easy OMF
allows a 16-bit repeat count.
In this case, the repeat count could not be represented in 16 bits.
.note
.us Unknown COMDEF LEAF type (%t)
.np
This fatal error message is issued when WOMP encounters a COMMON block
definition of an invalid type in a Microsoft OMF file.
The type number is printed as a 2-digit hexadecimal value.
.note
.us Unknown register type, assuming AX
.np
This fatal error message is issued when an unsupported register type
is encountered in a debug record.
All register types for the current Intel 80x86 family architecture are
supported so it is unlikely that this message will appear.
The probable cause would be an invalid object file record.
.note
.us Unknown SCOPE (%s)
.np
This fatal error message is issued when a scope other than STRUCT,
UNION or ENUM is encountered in an object file.
It is possible that, in the future, a new compiler might generate
other types of scope.
The scope name is printed as part of the message.
.note
.us Unknown SEGDEF align value (%t)
.np
This fatal error message is issued when the alignment type is not one
of "ABSOLUTE", "BYTE", "WORD", "PARA", "PAGE", "DWORD" or "4KPAGE".
The type number is printed as a 2-digit hexadecimal value.
.note
.us Unsupported floating-point option
.np
This warning message is issued when the floating-point option in the
THEADR (translator header) record is not one of "emulated-inline" (FPI
option), "emulated-calls" (FPC option), or "80x87-inline" (FPI87
option).
.note
.us Unsupported memory model
.np
This warning message is issued when the memory model option in the
THEADR (translator header) record is not one of "small", "medium",
"compact", "large", "huge", "tiny" or "flat".
.note
.us Unsupported scalar size
.np
This warning message is issued when converting to Turbo debug format
and an integer item encountered in a debug record is greater than 32
bits and not 64 bits in size.
WOMP will create an equivalent array type of an appropriate size.
.note
.us Debugging segment too large (max is 64k)
.np
This fatal error message is issued when a debugging segment is greater
than 64K bytes.
Neither the linker nor debugger will handle a debugging segment that
is larger than this.
.endnote

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -