florian
71e71ad267
* fix currency division on non x86 32 bit targets
...
* disable fix for #33439 during bootstrapping with 3.0.x, as 3.0.x cannot compile the currency division without the fix above
git-svn-id: trunk@38558 -
2018-03-17 22:44:44 +00:00
florian
c230f81719
+ support for <dyn. array>+<dyn. array>, resolves #30463
...
git-svn-id: trunk@38406 -
2018-03-04 16:12:43 +00:00
svenbarth
916ff0b92c
+ extend Concat() with support for dynamic arrays
...
+ added test
git-svn-id: trunk@37723 -
2017-12-12 19:54:08 +00:00
florian
7817102727
* patch by Christo Crause to implement 8 bit multiplications for "mul-less" avr types, resolves issue #31925
...
git-svn-id: trunk@37380 -
2017-10-01 20:34:44 +00:00
nickysn
34113b930b
* removed the checkoverflow: boolean parameter of the software mul helpers;
...
replaced it with a separate "_checkoverflow" version of each helper
git-svn-id: trunk@36344 -
2017-05-26 15:34:26 +00:00
svenbarth
72c595eefe
+ implement support for Insert() for dynamic arrays; the parameter that is inserted can be a dynamic or static array of the same type, an array constructor or a single element of the arrays type; all that is determined based on the second type
...
+ added test
git-svn-id: trunk@36307 -
2017-05-23 19:11:49 +00:00
nickysn
b14f277e8f
+ use rtl helpers for 64-bit shl/shr/sar/rol/ror modify in place operations, on
...
platforms that don't have native 64-bit implementation of the corresponding
64-bit shift/rotate operation
git-svn-id: trunk@35787 -
2017-04-13 15:24:32 +00:00
florian
7213a13081
* split fpc_mul_<64 bit> into separate procedures with and without overflow checking
...
git-svn-id: trunk@35454 -
2017-02-19 19:15:14 +00:00
florian
29a2c433f7
* -Sr option for iso mode: in case no command line parameter is passed, the file name for program parameters is derived from their variable name
...
git-svn-id: trunk@35257 -
2017-01-07 14:50:58 +00:00
florian
0c238b72e5
+ set/longjmp implementation for avr
...
git-svn-id: trunk@34971 -
2016-11-26 18:33:15 +00:00
nickysn
e1792e712a
* changed the 'size' parameter of fpc_zeromem and fpc_fillmem from ptruint to sizeuint
...
git-svn-id: trunk@34741 -
2016-10-18 15:42:29 +00:00
florian
9c81e90e08
+ extension to iso mode: reset/rewrite can take a file name as a second parameter
...
git-svn-id: trunk@34726 -
2016-10-16 07:55:08 +00:00
svenbarth
26a2ddd3d6
+ extend Delete() intrinsics with Delphi compatible support for dynamic arrays. Also fixes Mantis #30306
...
git-svn-id: trunk@34455 -
2016-09-08 17:15:10 +00:00
svenbarth
248490bbf1
* declare fpc_zeromem and fpc_fillmem as inline to avoid one call
...
git-svn-id: trunk@33994 -
2016-06-15 20:16:16 +00:00
svenbarth
fd66d70449
innr.inc:
...
+ add constants for the Delete and Insert intrinsics
compproc.inc:
* use the new constants instead of magic values to denote the relationship of the compilerprocs to the intrinsics
git-svn-id: trunk@33901 -
2016-06-04 08:58:38 +00:00
svenbarth
a2c9c75e97
Convert Insert() and Delete() to intrinsics in preparation for dynamic array support for these two procedures.
...
Since overloading compilerprocs does not work each procedure got its own unique name, but they are using the new compilerproc extension to map them to the Insert and Delete symbol so that error messages can be shown with the respective name for the procedure declarations instead of fpc_shortstr_delete for example.
git-svn-id: trunk@33895 -
2016-06-03 21:25:49 +00:00
nickysn
c78f406d99
+ implemented proper stack checking for the i8086
...
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
Jonas Maebe
2afd8eb802
- removed FPC_HAS_STR_CURRENCY-related code, FPC 2.6.4 has it
...
git-svn-id: trunk@31692 -
2015-09-15 11:51:48 +00:00
Jonas Maebe
e2da416270
+ new file for llvm intrinsics (using external compilerprocs)
...
git-svn-id: trunk@31407 -
2015-08-24 22:06:56 +00:00
florian
ba1297b1ab
+ provide also 8 and 16 bit div/mod helper
...
* tmoddivnode.first_moddivint does not force a 32 bit helper, the used helper depends now on the resultdef type set by tmoddivnode.pass_typecheck
git-svn-id: trunk@31195 -
2015-07-05 20:16:50 +00:00
Jonas Maebe
3f736f6114
* handle the loading of VMT entries at the node level, so it's done in a
...
type-safe way (for LLVM, and also internal consistency checking between
the VMT as generated in nobj.pas and ncgvmt.pas)
o also converted the VMT validity checking to the node level
git-svn-id: trunk@30950 -
2015-05-31 16:50:47 +00:00
florian
98856437b2
* disable fpc_chararray_enum for now on avr because the register allocator cannot currently handle it
...
git-svn-id: trunk@30380 -
2015-03-29 19:46:02 +00:00
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
michael
3563944752
* Patch to allow changing TVarRec data (bug ID 26773)
...
git-svn-id: trunk@28995 -
2014-11-05 22:17:54 +00:00
Jonas Maebe
5c75b6dd6b
* synchronised with trunk up till r28402
...
git-svn-id: branches/hlcgllvm@28403 -
2014-08-13 16:04:30 +00:00
nickysn
5edbd1cd03
* fixed i8086 ifdef (should be ifdef cpui8086, not i8086, because that's the
...
rtl, not the compiler)
git-svn-id: trunk@28347 -
2014-08-08 21:37:17 +00:00
nickysn
13646c7afe
+ added rtl helper for huge pointer subtraction
...
git-svn-id: trunk@28178 -
2014-07-06 19:15:14 +00:00
Jonas Maebe
7949bebb8d
* synchronised with r28168 of trunk
...
git-svn-id: branches/hlcgllvm@28169 -
2014-07-05 21:30:28 +00:00
nickysn
c306f48c14
+ added rtl helpers for huge pointer comparisons
...
git-svn-id: trunk@28148 -
2014-07-04 08:34:17 +00:00
nickysn
f0346c096f
+ added rtl helpers for huge pointer arithmetic
...
git-svn-id: trunk@28099 -
2014-06-28 17:08:40 +00:00
Jonas Maebe
bacd303208
* synchronized with trunk up to r27758
...
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
sergei
217bac7a0b
- Removed fpc_pi_real compilerproc, it is no longer used. At least two releases (2.6.2 and 2.6.4) emit Pi directly as a constant.
...
git-svn-id: trunk@27500 -
2014-04-07 09:16:24 +00:00
sergei
a7563fd0c8
* Added {$ifdef ver2_6} around stuff which is no longer used but needed for bootstrapping.
...
git-svn-id: trunk@27038 -
2014-03-08 23:13:10 +00:00
Jonas Maebe
e9268a0a14
* synchronised with trunk up till r26975
...
git-svn-id: branches/hlcgllvm@26976 -
2014-03-06 21:36:58 +00:00
Jeppe Johansen
9b79f2f68d
Added support for 8-bit CPU's in RTL. Mostly for missing implementations of int<->string conversion and console/text output.
...
git-svn-id: trunk@26958 -
2014-03-04 20:00:03 +00:00
sergei
d004607876
* fpc_raiseexception does not return a result.
...
git-svn-id: trunk@26837 -
2014-02-22 15:18:31 +00:00
florian
15df4a4f80
+ support iso pascal like program parameters in iso mode
...
git-svn-id: trunk@26437 -
2014-01-12 20:17:51 +00:00
florian
e841027a48
* fixes handling of typed files in iso mode
...
git-svn-id: trunk@26436 -
2014-01-12 20:17:48 +00:00
nickysn
c2ba9ebfe5
+ added different mul helpers for the 32 to 64-bit muls, since they can usually
...
be implemented more efficiently than the 64 to 64-bit ones.
git-svn-id: trunk@26386 -
2014-01-05 03:01:18 +00:00
Jonas Maebe
d2b8275b99
+ support for arbitrary encodings in readstr/writestr
...
o set the code page of the temporary "text" file to utf-8 for writestr with
unicodestring/widestring as destination, so that no data loss can occur
(+ properly deal with cases whereby part of an utf-8 character is
written to the textbuf in this case)
o explicitly pass the code page of the destination ansistring for writestr
with ansistring as destination and set it for the temporary "text" file
o set the code page of the text file for readstr
git-svn-id: trunk@26317 -
2013-12-29 19:18:49 +00:00
sergei
f42c1b3720
* Return dynamic arrays in parameter, this was the only managed type still returned in register. Returning managed types in registers requires catching and re-raising exceptions at callee side in order to finalize result and avoid memory leaks. While such behavior makes little difference with generic setjmp-based exception handling, it becomes very inefficient as SEH-styled exception handling is being introduced.
...
The new behavior is also Delphi-compatible.
git-svn-id: trunk@26180 -
2013-12-04 13:43:22 +00:00
Jonas Maebe
9e6764e443
* converted program termination to compilerproc/hlcg
...
git-svn-id: branches/hlcgllvm@26029 -
2013-11-11 11:14:43 +00:00
Jonas Maebe
cd92791d09
* converted unit initialization to compilerproc/hlcg
...
git-svn-id: branches/hlcgllvm@26028 -
2013-11-11 11:14:38 +00:00
nickysn
c1b0fb81f1
* updated all the RTL helper functions related to exceptions and stack traces to use codepointer instead of pointer
...
git-svn-id: trunk@25513 -
2013-09-17 21:25:26 +00:00
sergei
b99cf8d680
* RTL: Changed 'shift' parameter of 64-bit shift helpers to CPU-native size, it doesn't have to be 64-bit because only its lower 6 bits are used. Not using 64 bit parameter improves code quality a bit.
...
git-svn-id: trunk@25478 -
2013-09-13 08:32:45 +00:00
Jonas Maebe
3c3ad705f1
* changed fpc_(u)char_to_shortstr() from a procedure into a function, like
...
the other fpc_(u)char_to_*str() routines (exception dates back to the
time calls to these routines were still inserted "manually" in the
compiler). Fixes the compilation of "shortstr:=widecharconstant" after
r23613 and simplifies other code calling this helper + test
git-svn-id: branches/cpstrrtl@25428 -
2013-09-06 08:02:46 +00:00
florian
0e41df598e
* merge i8086 branch by Nikolay Nikolov
...
git-svn-id: trunk@24324 -
2013-04-25 20:23:51 +00:00
nickysn
7e18ac90e5
* the 'len' argument of fpc_shortstr_assign changed to smallint on 16-bit cpus, because getintparaloc allocates 16-bit ints on i8086
...
git-svn-id: branches/i8086@24258 -
2013-04-16 08:25:54 +00:00
nickysn
cac6ac38d0
+ added RTL helpers for Val() for longint/dword on 16/8-bit CPUs
...
git-svn-id: branches/i8086@24048 -
2013-03-29 01:19:14 +00:00
nickysn
8b6b832677
+ added helper functions for read/readln longint/longword on 16/8-bit cpus
...
git-svn-id: branches/i8086@24047 -
2013-03-28 23:56:47 +00:00