Commit Graph

40611 Commits

Author SHA1 Message Date
nickysn
3505ba4ee6 + added CPU detection code in the msdos rtl startup in order to properly initialize the Test8086 variable
git-svn-id: trunk@25034 -
2013-07-03 15:43:01 +00:00
sergei
1c84c3edbf * Fixed label optimizer to work with MIPS, and enabled level 1 optimization for MIPS targets.
The difference in branch instruction formats is isolated in function JumpTargetOp, it is a plain function rather than a virtual method, so it can be easily inlined and, after inlining, produces the same code for non-MIPS targets as it was before change.

git-svn-id: trunk@25033 -
2013-07-03 14:40:24 +00:00
lacak
7a46ebd7f1 fcl-db: odbc: map UNSIGNED SMALLINT to ftWord fields. TestSupportWordFields
git-svn-id: trunk@25032 -
2013-07-03 08:24:51 +00:00
florian
162cb30528 * another patch by Max Nazhalov to fix shifting and rounding of float128
git-svn-id: trunk@25031 -
2013-07-02 21:03:39 +00:00
sergei
8823574fe2 * MIPS: get rid of DIV and DIVU macros.
git-svn-id: trunk@25030 -
2013-07-02 14:28:10 +00:00
sergei
d0ae800da6 + MIPS: Use INS and EXT instructions for bit manipulations when target CPU type is set to mips32r2.
git-svn-id: trunk@25029 -
2013-07-02 14:21:29 +00:00
pierre
eb1ff90de1 Fix jvm compiler compilation failure after rev 25013
git-svn-id: trunk@25028 -
2013-07-02 12:52:32 +00:00
lacak
1ffcb9c1e6 fcl-db: mssql: add comments
git-svn-id: trunk@25027 -
2013-07-02 11:38:33 +00:00
lacak
f2464fbf3d fcl-db: mysql: formatting (remove unused variables)
git-svn-id: trunk@25026 -
2013-07-02 11:29:15 +00:00
lacak
029eb92bd0 fcl-db: mysql: map UNSIGNED SMALLINT to ftWord fields. TestSupportWordFields
git-svn-id: trunk@25025 -
2013-07-02 11:20:04 +00:00
sergei
828309e61d - MIPS: removed opcodes that are not in any known documentation.
git-svn-id: trunk@25023 -
2013-07-01 06:09:53 +00:00
florian
a0292b8962 * patch by Max Nazhalov to fix more conversion issues of the C code translation, resolves #24691
git-svn-id: trunk@25022 -
2013-06-30 18:07:40 +00:00
marco
ee5ce52d4c * Simple Add/remove firewall rule wrapper by d4nn13 (forum)
git-svn-id: trunk@25021 -
2013-06-30 16:19:01 +00:00
florian
6ab95815d8 * try to optimze (p-/+const)^ by putting const into the offset of the generated reference
git-svn-id: trunk@25014 -
2013-06-29 22:20:34 +00:00
florian
be2ab84474 * make actualtargetnode a normal procedure using pointers to node so it can be used also when replacing nodes
+ replacenode to replace nodes inline

git-svn-id: trunk@25013 -
2013-06-29 22:20:30 +00:00
nickysn
7e70a5f763 * i8086 fix after r25010: i8086 doesn't support lea sp,[sp-XXX]
git-svn-id: trunk@25012 -
2013-06-29 12:21:15 +00:00
Tomas Hajny
67b3017751 * RealMaxPathLen added - value queried from the system on startup
git-svn-id: trunk@25011 -
2013-06-28 21:02:04 +00:00
florian
94cf650d9a * use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub
git-svn-id: trunk@25010 -
2013-06-28 17:06:57 +00:00
sergei
7810d6637a * MIPS: improved 64-bit comparisons by using cg.a_cmp_reg_reg_label, uses less instructions and registers when comparing with zero.
git-svn-id: trunk@25008 -
2013-06-28 15:46:17 +00:00
sergei
7a28815182 * r24895 used wrong expression for swapping sides of comparison, and it went undetected by tests. Fixed.
git-svn-id: trunk@25007 -
2013-06-28 15:40:37 +00:00
sergei
40045e6269 - Removed unused variables
git-svn-id: trunk@25005 -
2013-06-28 11:53:10 +00:00
sergei
8bfef107b3 * TAB characters removed.
git-svn-id: trunk@25004 -
2013-06-28 10:58:22 +00:00
sergei
c855868a3d * MIPS: get rid of macros in comparison operations, use immediate operands for comparison with constants when possible.
+ InternalError if valid GP is needed but pi_needs_got was not set in pass 1.

git-svn-id: trunk@25003 -
2013-06-28 10:22:26 +00:00
Jonas Maebe
1e167a5fd3 * updated address of FSF (mantis #24646, patch by Alexey Svistunov)
git-svn-id: trunk@24987 -
2013-06-27 14:04:34 +00:00
Jonas Maebe
81597bf171 * updated address of FSF (mantis #24646, patch by Alexey Svistunov)
git-svn-id: trunk@24986 -
2013-06-27 14:01:18 +00:00
Jonas Maebe
345ca6f187 * prevent going through (the expensive) InternalSetCodePage when changing
the code page of a string with refcount=1 and without conversion (happens
    a lot in internal RTL routines)

git-svn-id: trunk@24985 -
2013-06-27 13:11:57 +00:00
pierre
277ae481b8 Add passing of -k option to linker for msdos and go32v2 targets
git-svn-id: trunk@24981 -
2013-06-26 22:27:16 +00:00
florian
b78d6108fd * workaround for 2.6.x to avoid overflow errors when compiled with -CRiot
git-svn-id: trunk@24980 -
2013-06-26 21:40:52 +00:00
marco
56e9f9301c * First set of patches for making mergable CHM files, committed after a point with 0 regressions.
* IDXHDR internal file added.
    * better defaults for [Windows] lines.
    * Avoid duplication topic if both in index and separately in hhp. Size reduction for many hhp scenarios, no difference for fpdoc
    * System section 13 (copy of idxhdr)
    * index/toc files registered as topic type 2. (incontents field)
      * duplicate code for creating topics cleaned up, all now use addtopic
    * correct number of topics in system file.
    * some bugfixes in binary index.
    * some more global properties supported in sitemaps.

 * many extra (dumping) options for chmls tool.

git-svn-id: trunk@24979 -
2013-06-26 14:31:30 +00:00
sergei
87cfd86172 * Define SUPPORT_GET_FRAME for targets having "get_frame" as internal symbol (x86,arm and jvm, currently), removes need to enumerate these targets in every related conditional compilation directive and simplifies configuring this feature for other targets.
git-svn-id: trunk@24978 -
2013-06-26 11:03:24 +00:00
nickysn
f7d3f7cd33 * use create_nil_dataptr instead of create_sym(nil) in TRTTIWriter.write_rtti_reference; among other things, this fixes writeln(enum) in the i8086 medium memory model
git-svn-id: trunk@24977 -
2013-06-25 21:02:55 +00:00
nickysn
784333edbb + added tai_const.Create_nil_codeptr and .Create_nil_dataptr, which should eventually replace tai_const.Create_sym(nil)
git-svn-id: trunk@24976 -
2013-06-25 20:57:12 +00:00
florian
844806cb19 * renamed parameter bp (x86 ism) into fp for dump_stack
* more sanity checks if fp really points into the stack

git-svn-id: trunk@24975 -
2013-06-25 19:46:08 +00:00
florian
f50e25afa0 * tests built/updated using gcc 4.8.1
git-svn-id: trunk@24974 -
2013-06-25 18:58:06 +00:00
nickysn
6c1262049e * tai_const.Create_sym_offset: follow the default i8086 data (instead of code) pointer size for asm symbols with typ=AT_DATA
git-svn-id: trunk@24973 -
2013-06-25 15:12:00 +00:00
marco
eebfeca41d * removed all ver2_* defines older than 2_4. 2_4 can probably also get removed from trunk, but better in a separate commit.
git-svn-id: trunk@24971 -
2013-06-25 12:46:30 +00:00
sergei
89c9cdf6c4 + MIPS: implemented parameter location reusing, eliminating second copy of (potentially large) records passed by value. When parameter is passed both in registers and stack, let it have a single LOC_REFERENCE location on callee side, and store relevant registers on stack (into 16-byte area reserved by ABI) early in prologue.
git-svn-id: trunk@24970 -
2013-06-25 08:15:17 +00:00
florian
466eb4c684 * use MOVAPS/MOVAPD for reg -> reg moves to reduce data dependencies
git-svn-id: trunk@24967 -
2013-06-24 20:55:04 +00:00
florian
e44d33f4db * rebuild with gcc 4.7.2, tcalext6 still fails because struct struct1 (one single value) is still returned on the fpu stack by gcc, this is not abi compliant on windows
git-svn-id: trunk@24966 -
2013-06-24 20:53:52 +00:00
pierre
91821acfc6 Use new conditional CPUSMALL and define it for m68k and 8086 cpu to use small array size
git-svn-id: trunk@24964 -
2013-06-24 15:40:08 +00:00
sergei
1419a12865 - Removed MIPS-specific code which has been copied to TMIPSProcinfo.set_first_temp_offset in r23885.
git-svn-id: trunk@24963 -
2013-06-24 12:02:17 +00:00
florian
19495439b1 * do not destroy the left operand in second_ansistring_to_pchar if it is a register
git-svn-id: trunk@24954 -
2013-06-23 15:16:33 +00:00
florian
541d67771b * keep managed types in registers if possible. Under certain circumstances (if they don't require init/final code,
e.g. being a const parameter or immutable temp. values), managed types like dyn. arrays, new string types and interfaces can be kept in registers.

git-svn-id: trunk@24953 -
2013-06-23 15:16:30 +00:00
nickysn
58b22adaf1 + added function cpubase.segment_regs_equal, which checks whether 2 segment regs are equal in the current memory model
git-svn-id: trunk@24949 -
2013-06-23 11:27:00 +00:00
paul
5a6b6d2c4d rtl: fix loading of long integer values to float properties
git-svn-id: trunk@24947 -
2013-06-23 11:18:25 +00:00
marco
72b0e72580 * added a fix for crashes on very short fpdoc projects. x.y.z.count was examined without checking x,y and z existed.
Fixes Mantis #24579

git-svn-id: trunk@24943 -
2013-06-23 09:10:15 +00:00
florian
00b03de7f0 * split SetCodePage into a wrapper and a function doing the real work to get rid of exception frames in the simple case
git-svn-id: trunk@24942 -
2013-06-22 18:19:50 +00:00
michael
2b6f33711b * Patch from Ludo Brands to implement InstanceName (Bug ID 24635)
git-svn-id: trunk@24932 -
2013-06-22 13:50:44 +00:00
sergei
4a9fe5d07d * Fixed register live range in for-loops:
o Loop counter node is "left", not "right",
  o End-value register needs explicit sync.

Without these changes, allocating registers in hlcg.a_cmp_reg_loc_label (at the end of loop) could reuse counter or end-value register, resulting in invalid code.

git-svn-id: trunk@24924 -
2013-06-21 15:26:14 +00:00
marco
ac3815fd84 * hopefully final series of tchar elimination.
git-svn-id: trunk@24923 -
2013-06-21 13:55:54 +00:00