Jonas Maebe
ecd3cba02b
* synchronised with trunk up to r24912
...
o resolved conflict in updated morphos sysutils unit
o moved code that had been added to the now deleted sysunix.inc to the
unix-specific block of the fpwidestring unit's init code
git-svn-id: branches/cpstrrtl@24913 -
2013-06-17 20:50:02 +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
nickysn
511b1f37c1
* write the segment of aitconst_farptr on a separate line to avoid long symbol truncation, due to line length limit; this fixes compilation of sysutils in the medium memory model
...
git-svn-id: trunk@24879 -
2013-06-12 01:32:18 +00:00
nickysn
70cd05caa8
* fpc_setjmp and fpc_longjmp updated to support far code memory models
...
git-svn-id: trunk@24878 -
2013-06-11 23:59:30 +00:00
nickysn
0de550c2c9
* use an indirect jmp in fpc_longjmp
...
git-svn-id: trunk@24877 -
2013-06-11 23:47:30 +00:00
nickysn
07b9019c94
* jmp_buf.pc renamed to .ip and also changed to word
...
git-svn-id: trunk@24876 -
2013-06-11 22:51:06 +00:00
nickysn
8392c492cc
* jmp_buf.bp and .sp changed to word, because pointer will become 32-bit in far data memory models
...
git-svn-id: trunk@24875 -
2013-06-11 22:47:42 +00:00
nickysn
baa4d39ea3
+ apply extra_param_offset to all i8086 asm routines that use nostackframe
...
git-svn-id: trunk@24874 -
2013-06-11 21:10:47 +00:00
nickysn
5d4ebf0dca
+ added extra_param_offset constant for accessing parameters in asm routines with nostackframe
...
git-svn-id: trunk@24873 -
2013-06-11 21:08:43 +00:00
florian
980563d576
* several small errors fixed, float128<->float64 conversion works now
...
git-svn-id: trunk@24872 -
2013-06-11 21:00:26 +00:00
florian
92477a14b8
o patch by Max Nazholov:
...
* more C code ported
* missing exits fixed
* var-modifier of shortShift128Left fixed
* some range warnings fixed
git-svn-id: trunk@24871 -
2013-06-11 21:00:23 +00:00
florian
ff3295d8fd
* nostackframe is not allowed by newer FPCs for pascal functions/procedure (and was never recommended)
...
git-svn-id: trunk@24870 -
2013-06-11 20:04:33 +00:00
Károly Balogh
cdf3f3266b
implemented FileSetDate, improved FileCreate
...
git-svn-id: trunk@24869 -
2013-06-11 06:02:28 +00:00
nickysn
bb06899ec7
* clarified the comment for aitconst_farptr
...
git-svn-id: trunk@24868 -
2013-06-10 21:35:29 +00:00
nickysn
fa9c26f76f
+ medium memory model added to the compiler help messages
...
git-svn-id: trunk@24867 -
2013-06-10 21:04:54 +00:00
nickysn
d387182bd6
* when doing a pointer comparison on i8086, don't cast a far pointer to a near one (pchar), but use a far one instead
...
git-svn-id: trunk@24866 -
2013-06-10 20:53:11 +00:00
nickysn
894d400a7b
+ added is_farpointer(tdef) and is_hugepointer(tdef) helper functions to defutil
...
git-svn-id: trunk@24865 -
2013-06-10 20:50:05 +00:00
pierre
aae318403d
Fix a int64<->single conversion failure exposed in test/units/softfpu/sfttst.pp
...
git-svn-id: trunk@24864 -
2013-06-10 13:51:02 +00:00
nickysn
70dbd7f667
* far pointer aware conversion of method pointer to plain procvar
...
git-svn-id: trunk@24863 -
2013-06-10 09:56:45 +00:00