yury
f37613ddd8
* Use .rodata and .data.rel.ro sections for Android with PIC.
...
git-svn-id: trunk@36292 -
2017-05-22 13:40:48 +00:00
Károly Balogh
1f7b6fbd9a
m68k: implement frac inline nodes
...
git-svn-id: trunk@36290 -
2017-05-21 21:13:02 +00:00
Károly Balogh
7ed9b9f188
m68k: instead of the FPU, use CPU instructions to copy cgparas to stack
...
git-svn-id: trunk@36289 -
2017-05-21 21:09:47 +00:00
Jonas Maebe
744facb7fc
* properly support accepting register parameters of assembler routines in
...
the intel assembler reader: no longer parse them as register tokens,
but as local operands that are later converted into registers. This
ensures in particular that the type of the operand is set, which is
necessary in case this operand later subscripted (as in tasm10a)
git-svn-id: trunk@36288 -
2017-05-21 20:17:15 +00:00
Jonas Maebe
61af0fb72d
* only take into account the location of the parameter at the callee side to
...
determine whether it's in a register if it's a pure assembler routine
* you can't "index" implicit pointers either using their fields
git-svn-id: trunk@36287 -
2017-05-21 20:17:11 +00:00
joost
2f72f67f11
* TFPPackage.GetDebugName now also works when the package is not assigned
...
git-svn-id: trunk@36286 -
2017-05-21 16:10:53 +00:00
florian
358bfb4858
* SSE4.1+ implementation of int(...)
...
git-svn-id: trunk@36285 -
2017-05-21 15:28:34 +00:00
florian
3c5ec4e76c
* allocate register correctly for "MovMov2Mov 2"
...
+ more debug messages
* debug message naming fixed
git-svn-id: trunk@36284 -
2017-05-21 15:06:22 +00:00
florian
69f41a776e
* jump-free Ceil*/Floor* implementations
...
git-svn-id: trunk@36283 -
2017-05-21 12:34:31 +00:00
florian
12dec14859
* try to break dependency chains when generating vsqrt instructions
...
git-svn-id: trunk@36282 -
2017-05-21 11:35:33 +00:00
florian
8eec29b139
+ enable support for a processor specific frac function
...
* implemented inlined frac support for CPUs with SSE4.1+
git-svn-id: trunk@36281 -
2017-05-21 11:12:59 +00:00
florian
912e6d129a
* fix modification flags for *ROUND*
...
git-svn-id: trunk@36280 -
2017-05-21 11:12:57 +00:00
florian
1ffdf02b94
+ Ch_*Op4
...
+ op_const_reg_reg_reg
git-svn-id: trunk@36279 -
2017-05-21 11:12:55 +00:00
pierre
a8ef8c852d
Put fpcsubarch-fpcmemorymodel directory search before general directories for i8086 CPU
...
git-svn-id: trunk@36278 -
2017-05-21 09:02:57 +00:00
florian
54b5112284
* real constants should be propagated during inline expanding
...
git-svn-id: trunk@36277 -
2017-05-21 08:34:47 +00:00
florian
ddfaf59626
* fix compilation with -Cr
...
git-svn-id: trunk@36276 -
2017-05-21 08:34:42 +00:00
Jonas Maebe
e4dbd24a49
+ inline trunc() support for the LLVM backend when using -Oofastmath (because
...
the behaviour of LLVM's fptosi instruction is undefined in case of
overflow)
git-svn-id: trunk@36275 -
2017-05-20 19:28:15 +00:00
michael
a5f22c92db
* Patch from Alfred to implement flat extraction
...
git-svn-id: trunk@36274 -
2017-05-20 10:26:23 +00:00
marco
86cea6b3ef
* add glVertexAttribDivisor, mantis #31878 , patch by Julian Puhl
...
git-svn-id: trunk@36273 -
2017-05-20 10:21:37 +00:00
pierre
8a7de4a4d3
Add calls to FPC_HANDLE_I8086_ERROR and add handlers for interrupt $10 and $75
...
git-svn-id: trunk@36271 -
2017-05-19 22:06:37 +00:00
pierre
ec0dfdc245
Regenerated after: Add unicode related units
...
git-svn-id: trunk@36270 -
2017-05-19 22:02:29 +00:00
pierre
86d0cfb75e
Add unicode related units
...
git-svn-id: trunk@36269 -
2017-05-19 22:02:01 +00:00
pierre
50e5256f8e
* system.pp:
...
+ Add MSDOS specific version of SysInitFPU, using Get/SetInterrput Vectors
to test coprocessor presence.
* Do not call SetupEnvironment in startup code.
+ Add internal_envp variable (nil by default).
+ Change envp to function, which calls SetUpEnvironment,
if internal_envp is nil.
* Do not call SetupArguments at startup,
instead call it from inside paramcount or paramstr
+ Add SaveInt10 and SavdeInt75
* dos.pp: Also swap Interrupt vectors $10 and $75
* sysutils.pp: Adapt to envp change in system unit.
git-svn-id: trunk@36268 -
2017-05-19 22:01:12 +00:00
Jonas Maebe
9787c5dd82
* fix compilation of LLVM backend (mantis #31794 )
...
git-svn-id: trunk@36267 -
2017-05-19 21:52:49 +00:00
Jonas Maebe
6dca851cb2
* set default LLVM version to 3.9.0
...
git-svn-id: trunk@36266 -
2017-05-19 21:52:45 +00:00
Jonas Maebe
f3ebde999f
* extracted the code to generate the indirect symbols from
...
finalize_asmlist() into its own method. finalize_asmlist() must not
generate new data, as it is /the/ method that gets overridden by
descendent classes to generate the symbol data in the format needed
by the platform
o fixes generation of indirect symbol data for LLVM
git-svn-id: trunk@36265 -
2017-05-19 21:52:42 +00:00
Jonas Maebe
04ac44cd37
- removed dependency of hlcgllvm on llvmpara, so that cpupara no longer
...
indirectly depends on llvmpara and hence is initialised after instead
of before it (since llvmpara should override cpupara in its init code)
git-svn-id: trunk@36264 -
2017-05-19 21:52:37 +00:00
pierre
277f1c1c2d
Check if FPC_SYSTEM_HAS_SYSINITFPU before parsing generic i8086 code
...
git-svn-id: trunk@36263 -
2017-05-19 21:49:13 +00:00
pierre
8ebac8ed52
Add Handle_I8086_Error procedure
...
git-svn-id: trunk@36262 -
2017-05-19 21:47:26 +00:00
pierre
301ed6d9b7
Fix debug code on successful int 0x21 function ax=0x4800
...
git-svn-id: trunk@36261 -
2017-05-19 21:30:14 +00:00
pierre
ae349a3ccc
Handle second argument to -Ch option, -Chx,y y is max heap size
...
git-svn-id: trunk@36260 -
2017-05-19 21:28:24 +00:00
pierre
5c18830aab
Regenerated files after: Add help for second argument to -Ch option, -Chx,y y is max heap size
...
git-svn-id: trunk@36259 -
2017-05-19 21:27:43 +00:00
pierre
22021dd0b8
Add help for second argument to -Ch option, -Chx,y y is max heap size
...
git-svn-id: trunk@36258 -
2017-05-19 21:27:08 +00:00
svenbarth
d311881b34
* extract calculation of unit init/fini entries into separate method get_init_final_list() so that it can be used by the AVR code as well
...
git-svn-id: trunk@36257 -
2017-05-19 16:12:22 +00:00
nickysn
720ac63a28
+ preserve the node fileinfo and verbosity properties from the previous
...
assignment node when applying the optloadmodifystore node transformations.
This keeps the source line info intact in the -al asm output (and probably
makes the optimization debugger friendly, although this isn't tested and not
at all guaranteed for all the other -O3 level optimizations)
git-svn-id: trunk@36256 -
2017-05-19 15:40:48 +00:00
pierre
d46c8886de
Do not set InOutRes if ReturnNilIfGrowHeapFails is set in SysOSAloc
...
git-svn-id: trunk@36255 -
2017-05-19 15:21:58 +00:00
nickysn
751d47c568
+ enable the optloadmodifystore optimization for statements such as "x:=x shl k"
...
and "x:=x shr k" (only enabled for i386 and x86_64 for now, since the other
code generator backends are untested)
git-svn-id: trunk@36254 -
2017-05-19 15:21:38 +00:00
svenbarth
5f08e47d84
+ add an SSE2 implementation of Frac() (the existing Trunc() and Round() implementations are also SSE2, so nothing special to keep in mind here)
...
git-svn-id: trunk@36253 -
2017-05-19 14:59:23 +00:00
svenbarth
b58c3ed212
+ add guards for consistency with the code for Extended
...
git-svn-id: trunk@36252 -
2017-05-19 14:57:36 +00:00
nickysn
7b70848d83
+ allow the src register size to be different from the op size or the dst
...
register size for OP_SHR/OP_SHL/OP_SAR/OP_ROL/OP_ROR in tcgx86.a_op_reg_reg().
This is required for the in_[shr/shl/sar/rol/ror]_assign_x_y inline nodes.
git-svn-id: trunk@36251 -
2017-05-19 14:03:13 +00:00
nickysn
9e2133c1b1
- disable SHOWUSEDMEM when EXTDEBUG is defined, because it breaks building a
...
snapshot with EXTDEBUG, due to the following fpmake error:
The installer encountered the following error:
Compiler returns invalid information, check if fpc -iV works
git-svn-id: trunk@36250 -
2017-05-19 13:35:38 +00:00
pierre
ade39069e5
Change ASize type for RegisterTinyHeapBlockXXX functions
...
git-svn-id: trunk@36249 -
2017-05-18 22:36:24 +00:00
Mattias Gaertner
aa6529f617
fcl-passrc: fixed ref count parsing package unit, bug #31872 , patch from Andrey Zubarev
...
git-svn-id: trunk@36248 -
2017-05-18 22:21:45 +00:00
Mattias Gaertner
afe2ddc388
pastojs: simplified
...
git-svn-id: trunk@36247 -
2017-05-18 22:12:10 +00:00
Mattias Gaertner
7cca09e2dd
fcl-passrc: started range check for tpasrangetype
...
git-svn-id: trunk@36246 -
2017-05-18 22:11:17 +00:00
svenbarth
0351369698
* ttypeconvnode.typecheck_arrayconstructor_to_dynarray: the assignment node of the temp array to the resulting array always needs to exist, so remove the assigned() check
...
git-svn-id: trunk@36245 -
2017-05-18 20:07:57 +00:00
svenbarth
b78037f6f2
* ttypeconvnode.typecheck_arrayconstructor_to_dynarray: use ctempcreatenode.create_value() instead of create() to get rid of the explicit addition of an assignment node
...
git-svn-id: trunk@36244 -
2017-05-18 20:07:02 +00:00
svenbarth
d073e07244
+ add a test to ensure that array constructors correctly handle managed types (though there might be a temp floating around for longer than one might expect)
...
git-svn-id: trunk@36243 -
2017-05-18 20:04:29 +00:00
Mattias Gaertner
a328f8df3d
pastojs: with localvar do
...
git-svn-id: trunk@36242 -
2017-05-18 09:34:54 +00:00
Mattias Gaertner
0c66d8b362
fcl-passrc: fixed releasing canonical set of anonymous enumtype
...
git-svn-id: trunk@36241 -
2017-05-18 09:34:40 +00:00