Commit Graph

42380 Commits

Author SHA1 Message Date
Jeppe Johansen
7fdb125356 Added AVR support to fpc and root Makefile.
Rebuilt root Makefile.

git-svn-id: trunk@26944 -
2014-03-04 08:02:10 +00:00
Jeppe Johansen
2227045e23 Replace forbidden chars in more places in the GAS assembler writer.
Add support for .set and .weak on AVR.
Fix 64 bit negation on AVR.
Add cpu_capabilities to cpuinfo.pas and fixed some peephole optimizations.
Pass >4 byte parameters by reference.

git-svn-id: trunk@26943 -
2014-03-04 08:01:23 +00:00
sergei
5e8f8f4755 * Use GOT-relative constants for i386 PIC jump tables, they don't need runtime relocations. Now almost ABI-compliant on Linux/BSD (Darwin targets unchanged). Also clean up i8086-specific stuff: using tai_const.create_type_sym(aitconst_ptr,...) generates near pointers on i8086, which is the desired goal.
git-svn-id: trunk@26942 -
2014-03-03 21:06:49 +00:00
sergei
d613ab8578 * x86: improve x87 qword to float conversion, using single-precision constants saves space and removes need in separate load on FPU stack. No precision loss occurs because 2**64 is representable exactly even in single precision.
git-svn-id: trunk@26941 -
2014-03-03 20:41:42 +00:00
michael
2ae138d95c * Applied patch from Luiz Americo to make set functions return previous value (bug ID 25795)
git-svn-id: trunk@26940 -
2014-03-03 14:13:00 +00:00
michael
54e926fdb5 * Set mode explicitly to fpc
git-svn-id: trunk@26939 -
2014-03-03 13:36:07 +00:00
reiniero
57582dd710 fcl-db: dbtestframework: cosmetic
git-svn-id: trunk@26938 -
2014-03-03 12:54:14 +00:00
reiniero
cb9c15a256 fcl-db: dbtestframework:
* Cosmetic: Oracle, MySQL drop table command convenience call

git-svn-id: trunk@26937 -
2014-03-03 12:25:31 +00:00
reiniero
5c0f205a57 fcl-db: cosmetic: another debug build mode for dbtestframework_gui
git-svn-id: trunk@26936 -
2014-03-03 11:35:03 +00:00
Károly Balogh
13210ff7d4 use MVZ/MVS ColdFire instructions to load constants where applicable
git-svn-id: trunk@26935 -
2014-03-03 00:53:52 +00:00
nickysn
2908fa9123 + added type parentfpvoidpointertype, which is a void pointer with the same size
as the hidden parentfp parameter, passed to nested procs. On i8086 it is
  always a near pointer, unlike voidpointer (which changes according to the
  memory model). This fixes nested procs in i8086 far data memory models.

git-svn-id: trunk@26934 -
2014-03-02 22:55:52 +00:00
nickysn
9321d9916d * use voidpointer.size instead of sizeof(pint) in tparamanager.push_size in
order to properly support i8086 far data memory models

git-svn-id: trunk@26933 -
2014-03-02 22:51:37 +00:00
nickysn
229ebf33a8 + support getting the address of far references on i8086 in
tcgx86.a_loadaddr_ref_reg

git-svn-id: trunk@26932 -
2014-03-02 22:21:16 +00:00
Jeppe Johansen
66f5b71fe9 Fixed passing of 32bit arguments on 8-bit architectures.
Added initial RTL startup code for AVR.

git-svn-id: trunk@26931 -
2014-03-02 20:53:21 +00:00
florian
23c724f885 * prevent a temp. register allocated during spilling being immediately spilled again, resolves #25164
git-svn-id: trunk@26930 -
2014-03-02 19:47:05 +00:00
nickysn
cb0f7e265d + fixed get_frame for i8086 far data memory models
git-svn-id: trunk@26929 -
2014-03-02 19:36:35 +00:00
nickysn
75134c2a26 + default_x86_data_pointer_type implemented as function that returns the proper
type in far data memory models

git-svn-id: trunk@26928 -
2014-03-02 19:35:36 +00:00
nickysn
a7117a6157 + enabled the compact and large i8086 memory models (they don't work yet, so
that's why they're not added to the compiler help screen yet)

git-svn-id: trunk@26927 -
2014-03-02 19:26:49 +00:00
nickysn
ad45bc17ec * local variables in fpc_AnsiStr_Concat_multi changed from longint to nativeint
git-svn-id: trunk@26926 -
2014-03-02 19:24:24 +00:00
Jeppe Johansen
e33550b67d Added support for X,Y,and Z register aliases plus low/high forms, and post-incrementation in AVR assembler reader.
Cleaned up parameter and funcretloc information generation in AVR paramanger, and made it closer to GCC's calling convention.
Fixed a number of codegenerator bugs generating invalid or broken instructions: CP operands were swapped, a number of instructions had immediate operands, and stack frame epilogue wasn't complete.
Added a bunch of peephole optimizations that clears the generated code up a lot.

git-svn-id: trunk@26925 -
2014-03-02 15:37:24 +00:00
florian
68f1a51164 * set PIC defines earlier, resolve #25788
git-svn-id: trunk@26924 -
2014-03-02 15:35:08 +00:00
Károly Balogh
1d5f74fae0 m68k implementation of g_save_registers and g_restore_registers using movem.l
git-svn-id: trunk@26923 -
2014-03-02 14:58:05 +00:00
nickysn
ae28ecd5f8 * changed the for loop counters in the resource string helper routines to be
nativeint instead of longint (generates more efficient code on i8086)

git-svn-id: trunk@26922 -
2014-03-02 13:42:30 +00:00
nickysn
5242ed7864 * changed TResStrInitTable.Count and TWStrInitTablesTable.Count to nativeint
git-svn-id: trunk@26921 -
2014-03-02 13:27:59 +00:00
nickysn
49b65fedd9 * TResourceStringTableList.Count type changed from ptrint to nativeint. Both
types are the same on almost all platforms. The only difference is on i8086,
  where ptrint changes according to the memory model, while nativeint stays
  16-bit. In the compiler, the count is emitted with Tai_const.Create_pint,
  which also stays 16-bit in all memory models, so the correct corresponding
  type in the rtl is nativeint.

git-svn-id: trunk@26920 -
2014-03-02 12:47:32 +00:00
nickysn
0d1342a791 * don't call FinalizeHeap from InternalExit if FPC_NO_DEFAULT_HEAP is defined.
This reduces i8086-msdos executable sizes by 1.5-1.7k depending on the memory
  model.

git-svn-id: trunk@26919 -
2014-03-02 11:38:11 +00:00
Károly Balogh
8730b1bf45 cleaned up g_proc_exit, optimized generated code and also added some comments about possible ABI variations. the changes also fix two tests on my system related to cdecl procedures
git-svn-id: trunk@26918 -
2014-03-01 23:52:00 +00:00
nickysn
65fe978b71 * various shortstring index variables changed from longint to sizeint (generates
more efficient code on i8086)

git-svn-id: trunk@26917 -
2014-03-01 21:44:08 +00:00
marco
2d9aa35d22 * now also stdconv and convutils removed from Makefile.fpc
git-svn-id: trunk@26916 -
2014-03-01 21:07:36 +00:00
marco
48e4555c12 * Removed some redundant rules
git-svn-id: trunk@26915 -
2014-03-01 21:06:16 +00:00
Károly Balogh
bd4cc3b8f3 cleaned up, reindented, simplified and allowed some minor optimizations in tcg64f68k
git-svn-id: trunk@26914 -
2014-03-01 18:25:05 +00:00
nickysn
73e6ffe675 * the TableCount and InitCount fields in the INITFINAL table changed to
nativeint (generates smaller and more efficient code on i8086)

git-svn-id: trunk@26913 -
2014-03-01 14:33:10 +00:00
Jeppe Johansen
95589fb1e2 Apply DataMov2Data to MLA and MLS too. Those have over 4 operands.
git-svn-id: trunk@26912 -
2014-03-01 14:21:04 +00:00
nickysn
b3e6248547 * define PNativeInt and PNativeUint as ^NativeInt and ^NativeUint, instead of
PPtrInt/PPtrUint, because on i8086 in the far data memory models the pointer
  size is different than the native int size.

git-svn-id: trunk@26911 -
2014-03-01 13:23:32 +00:00
nickysn
b672bc754a - rm references to system_i386_darwin and system_i386_iphonesim from
tcg8086.init_register_allocators

git-svn-id: trunk@26910 -
2014-03-01 12:52:31 +00:00
nickysn
a31b7d485f * tcg8086.init_register_allocator: instantiate trgintcpu instead of trgcpu for
the integer registers in all cases

git-svn-id: trunk@26909 -
2014-03-01 12:50:26 +00:00
nickysn
6e9083aa84 * fixed inc/dec with constant truncating the high parts of the constant on
16-bit and 8-bit CPUs

git-svn-id: trunk@26908 -
2014-03-01 10:33:14 +00:00
nickysn
fc29e10349 * allow the use of inc/dec when adding/subtracting 32 or 64-bit constants with
the highest word equal to one and the lower parts zero

git-svn-id: trunk@26907 -
2014-03-01 10:25:46 +00:00
marco
17330b94e3 * Patch from Ocean, Mantis #25798
git-svn-id: trunk@26906 -
2014-02-28 15:19:08 +00:00
marco
14590fb859 ( Patch from Ocean, mantis #25799. DISPID_AMBIENT_* consts and IPerPropertyBrowsing..
git-svn-id: trunk@26905 -
2014-02-28 15:18:22 +00:00
michael
68c1607ecc * Use resourcestring
git-svn-id: trunk@26904 -
2014-02-28 15:02:21 +00:00
nickysn
30b1aa1d96 * document the known delphi xe3 64-bit test failures
git-svn-id: trunk@26903 -
2014-02-28 14:08:50 +00:00
reiniero
acd53636ed fcl-db: dbtestframework, Oracle:
* Fix for Oracle not accepting string literals in INSERT INTO statement for BLOB fields.
  Use hex encoding instead.
  Note: probably will have to review BLOB .AsString code in Oracle connector as well

git-svn-id: trunk@26902 -
2014-02-28 10:04:51 +00:00
reiniero
f3b7a7ad2e fcl-db: dbtestframework, Oracle:
* Fix for Oracle can't handle time hours > 23:
ORA-01850: hour must be between 0 and 23

git-svn-id: trunk@26901 -
2014-02-27 16:59:39 +00:00
reiniero
2d8ea638b3 fcl-db: dbtestframework, Oracle:
* ftLargeint requires NUMBER(19,0) instead of NUMBER(18,0)/NUMERIC(18,0) in order to cater for entire largeint range:
see
http://docs.oracle.com/cd/B19306_01/server.102/b14232/apb.htm

* Oracle ftdate/ftdatetime/ftTime require date/timestamp literals:
e.g. 
DATE '2000-01-01', 
TIMESTAMP '0001-01-01 10:45:12.000', 
See
SQL Reference 10g Release 2
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#BABGIGCJ

git-svn-id: trunk@26900 -
2014-02-27 16:45:31 +00:00
lacak
54f0f58f63 fcl-db: bufdataset:
- Introduces RecNo property at TBufIndex level. It enables TBufIndex descendants implement efficient way of getting/setting RecNo.
It also moves "index dependant" code from TBufDataset to TBufIndex and let TBufDataset use methods of TBufDataset.
- Introduces also GetRecord method at TBufIndex level, which provides "index scaning/walking" for TBufDataset

git-svn-id: trunk@26899 -
2014-02-27 15:12:29 +00:00
sergei
f69e6ec389 * Some fixes to NASM writer:
* Correctly output names of sec_user sections and sec_threadvar on Windows targets
  * Use ALIGNB directive to align without warnings in bss and alike sections.
  * Do not output 'begin/end asmlist x' for empty asmlists.

git-svn-id: trunk@26898 -
2014-02-27 13:37:03 +00:00
reiniero
f77060135c fcl-db: cosmetic
git-svn-id: trunk@26897 -
2014-02-27 13:27:43 +00:00
Jonas Maebe
9315c121d4 - removed cwstring again, it's not needed and breaks compilation of the test
on non-Unix platforms

git-svn-id: trunk@26896 -
2014-02-27 11:54:48 +00:00
marco
35909d1939 * patch from mantis #25790 SHGDN SHCONTF and SFGAO constants.
git-svn-id: trunk@26895 -
2014-02-27 09:55:08 +00:00