svenbarth
def357287e
* revert revision 21251 for pdecvar.pas: not generating the bss-data for the static symbol for a generic breaks linking with debug info enabled; I'll need to find a better solution to avoid unneeded use of space (luckily it wasn't needed to fix any bug ^^)
...
git-svn-id: trunk@21264 -
2012-05-09 12:02:41 +00:00
Jonas Maebe
641b259aed
* adjusted thlcg.g_rangecheck() implementation so it can be used for all
...
targets and removed (the almost identical) tcg.g_rangecheck()
git-svn-id: trunk@21262 -
2012-05-08 20:02:36 +00:00
Jonas Maebe
11e9f95580
* fixed (not harmless) class cast error when indexing an array[orddef] using
...
a non-orddef (e.g., a variant)
git-svn-id: trunk@21261 -
2012-05-08 20:02:26 +00:00
Jonas Maebe
95b8b95c9c
* fixed (harmless) class cast error
...
git-svn-id: trunk@21260 -
2012-05-08 20:02:18 +00:00
Jonas Maebe
41d86f2b26
* fixed (harmless) class cast error when checking whether an aggregate
...
has the same size as one of its members to determine whether we can
exchange two temps rather than copying one to the other
git-svn-id: trunk@21259 -
2012-05-08 20:02:04 +00:00
Jonas Maebe
003a30db6b
- reverted r21246, it breaks tcalext3/5 on x86
...
git-svn-id: trunk@21258 -
2012-05-08 17:17:01 +00:00
Jonas Maebe
24be42d509
* changed "crc" variable from longint to cardinal to avoid (harmless) range
...
check errors
git-svn-id: trunk@21257 -
2012-05-08 17:16:56 +00:00
Jonas Maebe
ab914a8ae3
* the code page of unicodestring/widestring on big endian targets is
...
UTF-16BE, not UTF-16LE
git-svn-id: trunk@21255 -
2012-05-08 13:38:16 +00:00
svenbarth
5b1b194b47
* pdecvar.pas, read_record_fields: don't generate BSS-data for generic static fields (doesn't fix any specific bug, but we don't need space reserved for the field)
...
* pgenutil.pas, generate_specialization: fix a stupid "don't iterate upwards if deleting/extracting" mistake (twice!); this fixes Mantis #21550 and Mantis #21654 (tests added)
git-svn-id: trunk@21251 -
2012-05-08 07:31:37 +00:00
Jonas Maebe
64f3ba3299
* clarified description of -Xd, it is not always required for
...
cross-compiling (mantis #21963 )
git-svn-id: trunk@21248 -
2012-05-06 15:44:52 +00:00
Jonas Maebe
50d2fa7134
* after changing a modeswitch, only change related module/localswitches that
...
depend on the modeswitch that was just changed (so that e.g. changing
the nested procvars setting has no effect on the state of $h+/$h-)
(mantis #21951 )
git-svn-id: trunk@21247 -
2012-05-06 14:56:49 +00:00
Jonas Maebe
9568693664
* removed superfluous sign extension from a_load_subsetreg_reg() (the value
...
is already sign extended at that point if required)
git-svn-id: trunk@21246 -
2012-05-06 14:50:38 +00:00
florian
edbb826521
* generate correct entry code on mips for subroutines with a stack frame >2^15-1
...
git-svn-id: trunk@21238 -
2012-05-05 18:34:31 +00:00
florian
5cfc865889
* version update
...
git-svn-id: trunk@21237 -
2012-05-05 18:33:15 +00:00
florian
77ae218556
* safer calculation of pool placement on arm
...
git-svn-id: trunk@21226 -
2012-05-04 19:10:30 +00:00
paul
aad9294c27
compiler: when explicit codepage modeswitch is installed and compiler has no codepage map for the DefaultSystemCodepage use default compiler codepage
...
git-svn-id: trunk@21223 -
2012-05-04 06:09:35 +00:00
sergei
78c0215447
Preparations to native threadvar support:
...
- i386/cgcpu.pas: removed segment check, rejecting references with segment here is too early. These references are passed to tcgx86.a_loadaddr_ref_reg, which can generate required code for them (or reject if they are not allowed for the target).
- ncgld.pas: removed "not tf_section_threadvars in target_info" condition, it is inverse to one on the following line, making non-generic branch impossible to execute.
+ Define FPC_SECTION_THREADVARS macro if corresponding flag is set for the target.
git-svn-id: trunk@21210 -
2012-05-03 16:26:44 +00:00
Jonas Maebe
0841ee6e4f
* GNU ld only supports double quotes in its response file -> requote there
...
as well under Unix (mantis #21928 , caused by r21069)
git-svn-id: trunk@21208 -
2012-05-03 12:41:16 +00:00
svenbarth
3d6e08ed59
+ Add support for the JVM architecture to the compiler driver "fpc"
...
git-svn-id: trunk@21204 -
2012-05-03 06:26:30 +00:00
svenbarth
7ebbebc877
- removed a duplicated include statement
...
git-svn-id: trunk@21203 -
2012-05-03 06:24:52 +00:00
Jonas Maebe
9c0ec8ee8c
* part of r21120, forgot to commit
...
git-svn-id: trunk@21128 -
2012-04-29 22:27:05 +00:00
Jonas Maebe
dd03bc3e66
* i386 version of fix from r21113
...
git-svn-id: trunk@21127 -
2012-04-29 22:27:00 +00:00
Jonas Maebe
8a7123eed8
* override a_call_reg() with an internalerror rather than a_call_ref(),
...
since it's the former that is abstract in the base class
git-svn-id: trunk@21126 -
2012-04-29 22:26:51 +00:00
florian
366e2027fc
* rename TMIPSELParaManager into TMIPSParaManager
...
git-svn-id: trunk@21124 -
2012-04-29 21:32:52 +00:00
florian
31f54a7810
* use separate build directory for mipsel
...
git-svn-id: trunk@21122 -
2012-04-29 21:30:46 +00:00
florian
25e82bb1af
* fix stack frame generation on mips(el)
...
git-svn-id: trunk@21121 -
2012-04-29 21:29:06 +00:00
Jonas Maebe
14cfe770a4
* replaced most (if not all) remaining fields/parameters in the compiler
...
that deal with paths/filenames with TPathStr (= ansistring) to prevent
cutting off long paths (no change in speed when compiling the compiler,
1% extra memory usage)
git-svn-id: trunk@21120 -
2012-04-29 17:36:23 +00:00
florian
aadeba4d1a
* started to fix stack frame generation on MIPS(EL)
...
git-svn-id: trunk@21118 -
2012-04-29 16:58:19 +00:00
Jonas Maebe
1345b7d107
* changed ref parameter of thlcgobj.a_call_ref() into a const parameter
...
git-svn-id: trunk@21115 -
2012-04-29 13:13:42 +00:00
Jonas Maebe
3abd5d3882
* changed inlinelevel (which is used to track whether or not we have to
...
generate line number information) from longint into cardinal, since it
should never become < 0 (allows catching errors by enabling range
checking)
git-svn-id: trunk@21114 -
2012-04-29 13:13:36 +00:00
Jonas Maebe
7742dc0006
* don't remove ait_markers between unconditional jumps and the next label,
...
to prevent removing the start/end of assembler blocks, and the start/end
of nolineinfo blocks (solves the problem that with -O2 -al most of the
source lines were missing from classes.s)
git-svn-id: trunk@21113 -
2012-04-29 13:13:31 +00:00
Jonas Maebe
06b17111da
* also recognize scurrency as an "originally was a 64 bit value" in
...
try_make_mul32to64()
* when inserting a 32x32->64 multiplication, change the typeconversions
of the original nodes into internal type conversions, because they
may have been currency (e.g., in case of an integer-to-currency
conversion, which is performed via integer*currency(10000)) and
since r21097 implicit conversions from currency to ordinal are no
longer allowed
git-svn-id: trunk@21112 -
2012-04-29 13:13:22 +00:00
sergei
7f96fee752
+ Added a comment on tcgprocinfo.generate_exceptfilter operation.
...
git-svn-id: trunk@21111 -
2012-04-29 10:34:29 +00:00
sergei
a85bb08a74
* Save/restore high-level code generator when processing exception filters, fixes building in Win64 with -dTEST_WIN64_SEH, Mantis #21879 .
...
git-svn-id: trunk@21110 -
2012-04-29 07:35:19 +00:00
Jonas Maebe
6850653296
* replaced "set1<=set2" expression with "(set1*set2)=set1", because the
...
SPARC code generator of 2.6.0 compiles the former expression wrongly
(which was fixed in r21095)
git-svn-id: trunk@21109 -
2012-04-28 22:38:14 +00:00
Jonas Maebe
562b968b16
* now that copy() expressions are only translated into calls during the
...
first pass, we have to manually set the varstate of its parameters during
the typecheck pass (mantis #21878 )
git-svn-id: trunk@21106 -
2012-04-28 21:33:29 +00:00
sergei
be5a5d6ae6
- Removed redundant fillchar() calls, class instances are cleared on construction.
...
git-svn-id: trunk@21101 -
2012-04-28 17:16:33 +00:00
sergei
c08ab0f745
* Re-raising exceptions must be allowed only in 'except' block itself, not in 'try' block of a nested try..except statement. Mantis #21873 .
...
git-svn-id: trunk@21100 -
2012-04-28 15:59:34 +00:00
Jonas Maebe
4fced5d142
+ generic implementation of thlcgobj.a_call_ref()
...
* override thlcg.a_call_reg() in JVM hlcgcpu with dummy that calls
internalerror
git-svn-id: trunk@21099 -
2012-04-28 14:27:45 +00:00
Jonas Maebe
e20639732f
+ cghlcpu unit with thlbasecgcpu class that overrides all abstract tcg
...
methods that don't have to be implemented by targets using the high
level code generator, with dummy implementations that raise an internal
error (to remove warnings about instantiating classes with abstract
methods)
* let the JVM tcg descendent derive from this new thlbasecgcpu class
git-svn-id: trunk@21098 -
2012-04-28 14:27:31 +00:00
Jonas Maebe
99e70e7128
* do not allow implicit conversions from currency to orddef even if currency
...
is implemented via int64 (prevents e.g. calling abs(int64) for
abs(currency) on non-x86)
git-svn-id: trunk@21097 -
2012-04-28 14:27:17 +00:00
Jonas Maebe
54f3db3141
* fixed "set <=/=> set"
...
git-svn-id: trunk@21095 -
2012-04-28 09:32:09 +00:00
paul
1a724f3e11
compiler:
...
- prefer UnicodeString, WideString, PWideChar, PAnsiChar, AnsiString, ShortString when passing a string constant if default string is UnicodeString,
- change default string type to UnicodeString for MODE DelphiUnicode
git-svn-id: trunk@21094 -
2012-04-28 08:19:10 +00:00
paul
c7e057a835
compiler: use is_wide_or_unicode_string() istead of using is_widestring() or is_unicodestring()
...
git-svn-id: trunk@21086 -
2012-04-28 03:32:06 +00:00
paul
290295db3e
compiler: remove UTF8 sequences from 2 comments + minor formatting
...
git-svn-id: trunk@21085 -
2012-04-28 02:46:06 +00:00
sergei
cd89a90841
* Cleanup: removed empty destructors and redundant 'with' statement.
...
* Removed TElfObjectOutput.Elf32data field, passing ObjData to methods in parameter, similar to how COFF output works.
git-svn-id: trunk@21080 -
2012-04-27 13:42:38 +00:00
sergei
3aaa62b2e3
* Removed separate 64-bit specific copy of location_force_reg, reusing part of 32-bit version to handle 64-bit cases. The difference is that the handling of LOC_CREGISTER locations that was previously available only for 32-bit targets is now applied to 64-bit targets too, reducing amount of redundant move instructions.
...
git-svn-id: trunk@21079 -
2012-04-27 13:15:46 +00:00
pierre
8e91872ce6
* Fix RequotedExecuteProcess
...
git-svn-id: trunk@21078 -
2012-04-27 12:10:32 +00:00
sergei
a54e342060
+ Reduce the amount of RTTI by not generating 'init' information if it will end up being the same as the 'full' one (which is the case of most simple types). The new behavior can be customized for every tdef by overriding needs_separate_initrtti method.
...
git-svn-id: trunk@21077 -
2012-04-27 10:17:59 +00:00
Jonas Maebe
564445da8c
* re-enabled enum -> dispinterface typecasts after r21069, bug noticed by
...
Paul
git-svn-id: trunk@21076 -
2012-04-27 09:30:25 +00:00