Commit Graph

40772 Commits

Author SHA1 Message Date
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
marco
d7f3ab848b * fixed some more tchar cases into a proper ifdef unicode -W else -A structure.
git-svn-id: trunk@24922 -
2013-06-21 13:11:43 +00:00
marco
993bc2511f * Patch from Ocean, Mantis #24625 adding ISimpleFrameSite,IFont,IFontDisp,IPictureDisp
git-svn-id: trunk@24920 -
2013-06-21 10:23:13 +00:00
michael
2842b90e1c * Patch from Laco to define SQL_IDENTIFIER_CASE
git-svn-id: trunk@24919 -
2013-06-21 09:23:40 +00:00
sergei
456f991c51 * MIPS: 3-operand forms of DIV and DIVU are not macros if first operand is $zero.
git-svn-id: trunk@24918 -
2013-06-20 13:14:38 +00:00
pierre
6e9489c41e Add annotate_displaty_prompt added before GDB 7.6 release
git-svn-id: trunk@24917 -
2013-06-19 13:45:27 +00:00
pierre
59d29b6c91 + Handler -dynamic-linker correctly, i.e.
skip next argument.
  + Add all library paths as $LIBRARYPATH and $OBJECTPATH
    at the end of gdblib.inc to be able to parse it
    directly in main fp.pas IDE program source
    (This solves the warning about crtbegin.o not found,
    at least for sparc-linux machine).

git-svn-id: trunk@24916 -
2013-06-19 10:48:31 +00:00
florian
9c1a4e2217 o error message file update by Karl-Michael Schindler:
* updated german ones
  * small mistake in english one corrected

git-svn-id: trunk@24915 -
2013-06-18 18:31:24 +00:00
pierre
91bc424694 Fix bug report 24612:
hermes package has compile error with introduced at r24910.
  Solved by checking that the procdef is not declared forward.

git-svn-id: trunk@24912 -
2013-06-17 15:21:07 +00:00
pierre
4892461009 Fix error in script about check if C compiler is GNU
git-svn-id: trunk@24911 -
2013-06-17 08:18:30 +00:00
florian
37df6f6455 * nostackframe now results in an error if used on pascal subroutines
git-svn-id: trunk@24910 -
2013-06-16 18:59:03 +00:00
florian
fc72490166 * handle LOC_*FPUREGISTER correctly when using sse2 sqr, resolve #26408
git-svn-id: trunk@24909 -
2013-06-16 18:48:08 +00:00
mazen
9c4052b505 + Added a new directive, CFGDIR, to configuration file allowing user to add a directory to a list where included configuration files are searched.
git-svn-id: trunk@24908 -
2013-06-16 15:43:10 +00:00
florian
9b6094a58c + added a few BMI instructions to see if they can be encoded
git-svn-id: trunk@24907 -
2013-06-16 09:35:21 +00:00
florian
0a84f1f10c + avx uses add to multiply by 2
* formatting

git-svn-id: trunk@24906 -
2013-06-15 21:18:40 +00:00
michael
7e72f856ce * Fix for bug ID #24603 (initialize result of TJSONObject.DoFormatJSON)
git-svn-id: trunk@24905 -
2013-06-15 16:14:35 +00:00
sergei
121271c38f * MIPS case node: simplified code a bit.
* Moved jump tables into data segment. For disassembly-based stack unwinding to work properly, MIPS ABI expects text segment to contain instructions only.

git-svn-id: trunk@24904 -
2013-06-15 12:36:21 +00:00
sergei
5bcae5a80a - Removed TMIPSParaManager.getintparaloc method, its generic implementation from r24716 works without issues.
git-svn-id: trunk@24903 -
2013-06-15 12:24:19 +00:00
nickysn
e291805880 * i8086 compilation fixed after r24896
git-svn-id: trunk@24902 -
2013-06-15 10:33:18 +00:00
sergei
a4217da7df * Factored repeating code into separate procedure (IsJumpToLabel)
- Assigned(x) check before "x is y" is redundant because "is" operator does the same check.

git-svn-id: trunk@24901 -
2013-06-15 07:02:47 +00:00
sergei
8b8553991a + MIPS: prevent coalescing written-to registers with $sp,$fp,$zero and $at.
+ Implemented subset of "spill replace" functionality, replacing moves from/to spilled registers with loads/stores to spill locations. This helps to reduce amount of instructions.

git-svn-id: trunk@24900 -
2013-06-15 04:04:08 +00:00
florian
0af7a6f92c + has_life_info
* successor info for for nodes fixed

git-svn-id: trunk@24899 -
2013-06-14 20:52:40 +00:00
florian
3016d48521 * clear optinfo after allocating it
git-svn-id: trunk@24898 -
2013-06-14 20:52:38 +00:00
florian
d8ff85846f * don't reuse mm registers used by child nodes
git-svn-id: trunk@24897 -
2013-06-14 20:52:36 +00:00
florian
e81d2d1f3b * basic avx support for floating point operations (use -Cfavx to activate)
git-svn-id: trunk@24896 -
2013-06-14 20:03:01 +00:00
sergei
6a8e4f0381 * MIPS: generate real instructions, not macros, for comparisons with $zero.
* g_concatcopy, g_concatcopy_unaligned: call a_cmp_reg_reg_label instead of duplicating code.

git-svn-id: trunk@24895 -
2013-06-14 07:27:48 +00:00
sergei
fb88cc4257 * TCGMIPS.a_load_reg_reg: reduce code duplication, and don't generate same register move for OS_32->OS_S32 and vice versa. Such moves explode into at least 4 instructions if register needs spilling, after which they are no longer recognized and cannot be removed by reg.allocator. So it's much better not to generate them in first place.
* Implemented overflow checking for multiplication, no longer generate MULO and MULOU macros.

git-svn-id: trunk@24894 -
2013-06-14 00:12:17 +00:00
sergei
7e0ae2e984 * MIPS: fixed cgsize2subreg to return correct result for float registers.
- TCGMIPS.getfpuregister override is no longer necessary with the above fix.

git-svn-id: trunk@24893 -
2013-06-13 23:50:20 +00:00
svenbarth
b6bfa864d4 Disallow the usage of the inline assembler inside generics, because there are currently two problems:
1. At least on x86 the assembler reader initializes the parameter location informations which results in InternalError 200301231
2. Assembler tokens are not stored in the token stream and thus won't be reproduced during specialization

x86/rax86int.pas, tx86intreader.Assemble:
  * check for "parse_generic" before calling generate_parameter_info
pstatmnt.pas, assembler_block & statement:
  * generate an error message if an asm statement should be parsed inside a generic

+ added test

git-svn-id: trunk@24892 -
2013-06-13 19:42:49 +00:00
florian
caef53e63b * another patch by Max Nazhalov to fix missing exits in the softfpu code
git-svn-id: trunk@24891 -
2013-06-13 19:40:17 +00:00
florian
7f6aa98553 * restored changes made in r24864 which I accidently overwrote with r24871
git-svn-id: trunk@24890 -
2013-06-13 18:38:35 +00:00
michael
30621e2e06 * Patch from Reinier OlieSlagers to correct message in case of not equals (bug ID 24433)
git-svn-id: trunk@24889 -
2013-06-13 14:43:21 +00:00
lacak
f95f42d72b fcl-db: tests: introduce TDBBasicsTestCase as ancestor for other test cases (call DBConnector.StartTest and StopTest from him)
git-svn-id: trunk@24888 -
2013-06-13 11:46:42 +00:00
svenbarth
2e186a91fa Add support for integer constants to SetPEFlags and SetPEOptFlags. This is Delphi compatible.
scandir.pas:
  + add function "get_peflag_const" to retrieve the value of a constant
  * dir_setpeflags & dir_setpeoptflags: first check for an identifier (value is retrieved through "get_peflag_const") and then read a value

+ added messages for illegal parameters for SetPEFlags and SetPEOptFlags respectively
+ added tests

git-svn-id: trunk@24887 -
2013-06-13 10:51:42 +00:00
nickysn
4840a33b80 * also return true in is_calljmp() for the A_JCXZ instruction on the i8086
git-svn-id: trunk@24886 -
2013-06-12 23:42:45 +00:00
sergei
6cb66faffe * Removed redundant assignments to result in UniversalTimeToLocal and LocalTimeToUniversal, Mantis #24582.
git-svn-id: trunk@24884 -
2013-06-12 14:33:23 +00:00
lacak
812efbad13 fcl-db: tests: add TestSQLDB to dbtestframework
git-svn-id: trunk@24883 -
2013-06-12 12:54:37 +00:00
sergei
64cf141f0c * Fix building for WinCE (KEY_WOW64_xx constants do not exist there), resolves #24587
git-svn-id: trunk@24882 -
2013-06-12 12:42:42 +00:00
lacak
5e1b3b303a fcl-db: tests: formatting (order methods)
git-svn-id: trunk@24881 -
2013-06-12 12:30:56 +00:00
lacak
ee2fee4259 fcl-db: sqldb:
- handle quoted table names when retrieving server index informations for quoted TableName
- reset updated flag of ServerIndexDefs when SQL.Text changes
- new tests unit for sqlDB
- tested for FB, MSSQL, MySQL, PostgreSQL, Sqlite, odbc_MSSQL, odbc_PostgreSQL, odbc_Firebird, odbc_MySQL

git-svn-id: trunk@24880 -
2013-06-12 11:01:59 +00:00