Merged revision(s) 28642-28688 from branches/svenbarth/packages:
Generate indirect symbols for global variables and load them indirectly when necessary.
ptconst.pas, read_typed_const:
* generate an indirect symbol for the const data using the indirect_suffix constant
ngenutil.pas, tnodeutils.insertbssdata:
* generate an indirect symbol for the uninitialized data using the indirect_suffix constant
ncgld.pas, tcgloadnode.pass_generate_code:
* load static variables indirectly if the following conditions are true:
- the target supports packages (otherwise this is a waste of cycles)
- the variable is not external
- IMPORTEDDATA is active
- the variable is loaded from a different unit
........
Forgot a variable declaration
........
git-svn-id: trunk@33449 -
Note: the merged code has been adjusted to a) use the typed constant builder and b) to not use the indirect symbol when its not necessary (non-Windows or same unit)
Merged revision(s) 28340, 28350 from branches/svenbarth/packages:
Generate an indirect VMT symbol for each generated VMT.
ncgvmt.pas, TVMTWriter:
* writevmt: write a symbol with the indirect VMT name that references the direct VMT symbol
........
Load the VMT using the indirect symbol if the target supports packages.
ncgmem.pas, tcgloadvmtaddrnode:
* pass_generate_code: if tf_supports_packages is set in target_info.flags we load the VMT using the indirect symbol, otherwise we load it using the direct symbol
........
git-svn-id: trunk@33448 -
ncgrtti.pas, TRTTIWriter:
* write_rtti & write_rtti_extrasyms: generate an indirect symbol for each of the RTTI symbols (they are not used yet, but soon will be)
* write_rtti: reorder operations a bit: first free the tcb (we don't need it anymore), then write the indirect symbol and only then write any extra symbols that might be needed (this way the RTTI data and the indirect symbol will be next to each other)
git-svn-id: trunk@33447 -
the reference has been used for the last time, as the destination
register could be the base or index register of the reference
git-svn-id: trunk@33393 -
set to true by setting environment variable DOSBOX_VERBOSE.
Most output generated by the wrapper is now only given if
verbose is true.
+ New constant SkipUntilText, default value 'Drive C is mounted as ',
allow to discard output generated by dosbox program up to the line
containing this string.
git-svn-id: trunk@33385 -
In comparison with the original patch, support for a i386 has been added as well as a test program.
Further, a small issue with xbegin has been fixed
git-svn-id: trunk@33375 -
instead of using the optimized instructions for 386+, which assume also a
32-bit address and operand size, so they didn't work even on a 386+ in real
mode
git-svn-id: trunk@33371 -