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
sergei
562714129f
* MIPS: get completely rid of LI macro, generate equivalent CPU instructions instead.
...
git-svn-id: trunk@24862 -
2013-06-10 02:07:21 +00:00
nickysn
6046edd8f9
+ i8086/n8086cnv.pas added to lazarus project
...
git-svn-id: trunk@24861 -
2013-06-10 01:19:22 +00:00
nickysn
b342588af1
+ i8086 specific far proc aware implementation of ttypeconvnode.second_proc_to_procvar
...
git-svn-id: trunk@24860 -
2013-06-10 01:19:01 +00:00
nickysn
9dbbffba61
+ added trefaddr.addr_seg for referencing the segment of a symbol
...
git-svn-id: trunk@24859 -
2013-06-10 01:16:37 +00:00
nickysn
57e84dc0b4
* set the proper size for far procsyms in tcgloadnode.pass_generate_code
...
git-svn-id: trunk@24858 -
2013-06-10 01:06:02 +00:00
nickysn
c9096ef806
* far pointer fix in taddrnode.pass_typecheck
...
git-svn-id: trunk@24857 -
2013-06-09 23:07:30 +00:00
nickysn
b81f0ab50d
+ implemented tcg8086.a_call_reg_far; very hacky, but still better than doing a near call, when it should be far
...
git-svn-id: trunk@24856 -
2013-06-09 22:16:40 +00:00
nickysn
62316da236
* a_call_reg moved to a_call_reg_near
...
git-svn-id: trunk@24855 -
2013-06-09 22:09:39 +00:00
nickysn
e4a1230356
+ added support for far pointer constants in the assembly output
...
git-svn-id: trunk@24854 -
2013-06-09 22:01:04 +00:00
nickysn
604b7c9deb
+ added cg.a_call_ref_near and a_call_ref_far
...
git-svn-id: trunk@24853 -
2013-06-09 20:22:47 +00:00
nickysn
10f7f0231e
* TExitProcInfo.SaveExit changed to CodePointer
...
git-svn-id: trunk@24852 -
2013-06-09 20:19:28 +00:00
nickysn
6431ebe7f3
* treat the nil node as equal to near, far and all the special x86 pointer types
...
git-svn-id: trunk@24851 -
2013-06-09 19:04:03 +00:00
nickysn
2809ed6fb9
* updated tfiledef.setsize to support the size of textrec in the medium memory model
...
git-svn-id: trunk@24850 -
2013-06-09 18:22:47 +00:00
nickysn
01f8989ebc
* textrec updated to use codepointer
...
git-svn-id: trunk@24849 -
2013-06-09 18:21:21 +00:00
nickysn
0d51ecdd00
* System.ExitProc type changed to CodePointer
...
git-svn-id: trunk@24848 -
2013-06-09 18:10:45 +00:00
nickysn
435a97059d
+ enabled the command line option for the medium memory model
...
git-svn-id: trunk@24847 -
2013-06-09 17:57:42 +00:00