nickysn
0a01c0c76f
* autoswitch to writing 32-bit SEGDEF OMF records if there's a need to encode a
...
32-bit segment length
git-svn-id: trunk@39095 -
2018-05-22 14:03:59 +00:00
nickysn
70be0dc6e9
* changed internal error number to make it unique
...
git-svn-id: trunk@39094 -
2018-05-22 13:49:40 +00:00
nickysn
8c842c1337
* changed the type of the 'size' parameter of TOmfObjOutput.AddSegment to
...
TObjSectionOfs instead of aword
git-svn-id: trunk@39093 -
2018-05-22 13:48:55 +00:00
nickysn
f5862efcd4
+ support writing 32-bit LEDATA OMF records
...
git-svn-id: trunk@39092 -
2018-05-22 13:23:56 +00:00
nickysn
99f2f3d4b6
* changed the TObjRelocation.DataOffset and orgsize types to TObjSectionOfs instead of aword
...
git-svn-id: trunk@39091 -
2018-05-22 13:17:35 +00:00
nickysn
dcdfecbf35
* changed internal error number to make it unique
...
git-svn-id: trunk@39090 -
2018-05-22 12:55:53 +00:00
nickysn
a656d98657
* autoswitch to writing 32-bit PUBDEF OMF records if there's a need to encode a
...
32-bit offset
git-svn-id: trunk@39089 -
2018-05-22 12:54:11 +00:00
nickysn
ca50b14e21
* set the omf section size limit to 32-bit for the dwarf debug sections
...
git-svn-id: trunk@39088 -
2018-05-22 12:41:51 +00:00
nickysn
065a7b63d9
* changed the TObjSectionOfs type to be longword on i8086
...
+ introduced the TObjSection.SizeLimit property. This will allow setting
different size limits for different sections (e.g. 32-bit for the dwarf
sections, 16-bit for the regular code and data sections on i8086).
git-svn-id: trunk@39087 -
2018-05-22 09:48:28 +00:00
nickysn
584635c591
+ introduce align_objsecofs; use it to align integers of type TObjSectionOfs
...
git-svn-id: trunk@39086 -
2018-05-22 00:20:21 +00:00
nickysn
f9748e928b
* also changed the type of the 'DataPos' parameter of TObjData.layoutsections to TObjSectionOfs
...
git-svn-id: trunk@39085 -
2018-05-21 16:48:56 +00:00
nickysn
04129b8c6e
+ introduce the TObjSectionOfs type - an unsigned integer, representing an
...
offset in an obj file section on the current platform; equal to PUInt for now,
but will probably change to LongWord on i8086, in order to support 32-bit
sections (needed for dwarf debug info or when linking with 32-bit object files
in a mixed 16-bit/32-bit application, while using the internal linker)
git-svn-id: trunk@39084 -
2018-05-21 16:31:50 +00:00
florian
8f472d5212
* check for more controll flow statements before doing loop unrolling
...
git-svn-id: trunk@39083 -
2018-05-21 15:46:02 +00:00
nickysn
308e439d5d
+ emit segment information in the dwarf debug info for static variables on i8086
...
git-svn-id: trunk@39082 -
2018-05-21 15:30:58 +00:00
nickysn
76ff01beda
+ also emit the non-standard DW_LNE_set_segment watcom extended opcode in the
...
dwarf line info on i8086
git-svn-id: trunk@39081 -
2018-05-21 14:54:11 +00:00
nickysn
9d167dbd2a
+ emit DW_AT_segment attributes in the dwarf debug info for subroutines
...
(DW_TAG_subprogram) on i8086
git-svn-id: trunk@39080 -
2018-05-21 14:40:39 +00:00
svenbarth
4354821f05
* regenerate msg* files after r39078
...
git-svn-id: trunk@39079 -
2018-05-21 08:14:21 +00:00
svenbarth
b7cc225149
* revert r39043 and r39045 which disallow static array constants inside dynamic constants for Delphi modes
...
git-svn-id: trunk@39078 -
2018-05-21 08:13:17 +00:00
nickysn
4aa66d9033
* emit a 32-bit offset for DW_FORM_ref_addr on i8086 (Watcom compatibility)
...
git-svn-id: trunk@39077 -
2018-05-21 01:36:23 +00:00
nickysn
2a5fbd4598
* continue reading the segment when walking the dwarf arange tuples on i8086
...
git-svn-id: trunk@39076 -
2018-05-20 22:51:52 +00:00
nickysn
d1cdd8be7c
* do not emit padding bytes after the dwarf arange header on i8086 for
...
compatibility with Open Watcom (also, the dwarf spec is not very clear about
the alignment requirements on segmented architectures, so that's why we do
this by default, instead of putting it behind a -go debug switch)
git-svn-id: trunk@39075 -
2018-05-20 22:50:46 +00:00
nickysn
1a2f364e68
* use 32-bit address_size in the dwarf arange sections on i8086 (for Open Watcom
...
compatibility)
git-svn-id: trunk@39074 -
2018-05-20 21:59:32 +00:00
nickysn
0efb86518b
+ emit dwarf segment information on i8086 in the .debug_aranges section
...
git-svn-id: trunk@39073 -
2018-05-20 21:28:26 +00:00
nickysn
651571c00f
+ added comments, indicating where we emit the address_size and segment_size
...
fields of the dwarf arange header
git-svn-id: trunk@39072 -
2018-05-20 21:21:26 +00:00
nickysn
a12622e06f
* use 1-byte alignment instead of 4-byte alignment for the OMF dwarf sections
...
(otherwise the alignment screws up the dwarf debug info)
git-svn-id: trunk@39071 -
2018-05-20 20:59:39 +00:00
nickysn
6fedf7e930
+ debug dump the address size from the header in ParseCompilationUnitForFunctionName
...
git-svn-id: trunk@39070 -
2018-05-20 20:41:13 +00:00
nickysn
a598e17c8a
* fix loading of i8086-msdos ELF when the MZ binary in front of it exceeds 64kb
...
git-svn-id: trunk@39069 -
2018-05-20 20:18:00 +00:00
nickysn
2955ee2dc4
+ i8086-msdos implementation of exeinfo.GetModuleByAddr
...
git-svn-id: trunk@39068 -
2018-05-20 20:03:58 +00:00
nickysn
1d3ad2b078
+ also take the segment portion of the address in lnfodwrf.ParseCompilationUnit
...
git-svn-id: trunk@39067 -
2018-05-20 17:20:29 +00:00
nickysn
4ce5db5188
+ also check the arange segment in ParseCompilationUnitForDebugInfoOffset
...
git-svn-id: trunk@39066 -
2018-05-20 17:00:56 +00:00
marco
dcfe1cae13
* fix 4265 cases where the index resolved a lemma that had a link= property.
...
Mantis #32325
* adds a warning for the cases that are fixed. If generation logs are saved, this makes it easy to check if new problems are related to this fix.
git-svn-id: trunk@39065 -
2018-05-20 16:59:45 +00:00
nickysn
81d5483ab1
* subtract the process load segment from the code segment on i8086
...
git-svn-id: trunk@39064 -
2018-05-20 16:55:18 +00:00
nickysn
875330d84f
+ pass a segment (0 on non-i8086) to all ParseCompilationUnit* functions in unit
...
lnfodwrf
git-svn-id: trunk@39063 -
2018-05-20 16:51:49 +00:00
nickysn
d7a3f755e4
+ also read arange segments on i8086
...
git-svn-id: trunk@39062 -
2018-05-20 16:07:28 +00:00
marco
d7f2ab0d28
* fix resolve* functions for filesystems with backslashes.
...
git-svn-id: trunk@39061 -
2018-05-20 16:03:30 +00:00
nickysn
3989e57fed
* take into account the address size in lnfodwrf.ReadAddress on i8086; support
...
2-byte and 4-byte addresses
git-svn-id: trunk@39060 -
2018-05-20 15:48:58 +00:00
nickysn
a7f5a69000
+ added an address size parameter to lnfodrwf.ReadAddress(); pass the expected
...
address size, as taken from the dwarf header structure
git-svn-id: trunk@39059 -
2018-05-20 15:43:19 +00:00
nickysn
dc8b78abe6
+ debug print the arange address and segment sizes
...
git-svn-id: trunk@39058 -
2018-05-20 14:58:09 +00:00
nickysn
1f76f52996
* use hexstr(addr) in the dwarf backtrace function, so it displays always a good
...
value, according to the x86 pointer type
git-svn-id: trunk@39057 -
2018-05-20 14:42:17 +00:00
nickysn
96b53c168c
* use hexstr(baseaddr) to print out the pointer value, regardless of its x86 type (near/far, etc.)
...
git-svn-id: trunk@39056 -
2018-05-20 14:39:28 +00:00
nickysn
abe61d0daa
* the 'addr' and 'baseaddr' parameters of exeinfo.GetModuleByAddr changed to
...
far pointers on i8086
* the 'addr' parameter of lnfodwrf.OpenDwarf changed to codepointer
git-svn-id: trunk@39055 -
2018-05-20 14:33:17 +00:00
nickysn
443980b7ac
* moved the morphos code for exeinfo.GetModuleByAddr to a separate ifdef section
...
git-svn-id: trunk@39054 -
2018-05-20 14:09:57 +00:00
nickysn
0ceb1244bf
* changed the type of the first parameter ('addr') of lnfodwrf.GetLineInfo to
...
CodePtrUInt instead of PtrUInt
git-svn-id: trunk@39053 -
2018-05-20 13:41:10 +00:00
nickysn
2c000d1e74
* processaddress's type changed to word on i8086 (ptruint changes size between
...
memory models and we only need the offset; the segment is tracked separately)
+ introduce texefile.processsegment on i8086
* initialize processaddress and processsegment properly on i8086-msdos (for .exe
files; .com files are not supported yet)
git-svn-id: trunk@39052 -
2018-05-20 13:19:49 +00:00
marco
f401410500
* quick fix for uninitialized "CodeEl" usage that trips up small test programs
...
git-svn-id: trunk@39051 -
2018-05-20 13:06:13 +00:00
nickysn
2411cb3f24
* fix save/restore of base/index/pos on i8086
...
git-svn-id: trunk@39050 -
2018-05-20 12:55:22 +00:00
nickysn
0ca05f042b
+ parse the openwatcom dwarf extension DW_LNE_SET_SEGMENT and also track segment
...
data in the dwarf state machine on i8086
git-svn-id: trunk@39049 -
2018-05-20 12:43:53 +00:00
nickysn
b048da4284
+ added the non-standard Open Watcom DWARF extension DW_LNE_set_segment extended
...
opcode constant; not emitted yet; will be needed on i8086
git-svn-id: trunk@39048 -
2018-05-20 12:25:03 +00:00
nickysn
60d49d696a
* fix for ReadLEB128 on 16-bit CPUs
...
git-svn-id: trunk@39047 -
2018-05-20 12:06:36 +00:00
nickysn
994783db95
+ introduce the TFilePos type for storing file offsets; use longint instead of
...
sizeint on i8086, because sizeint is 16-bit and file offsets are 32-bit there
git-svn-id: trunk@39046 -
2018-05-20 11:55:47 +00:00