Commit Graph

50892 Commits

Author SHA1 Message Date
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
pierre
c0fd038eaa Start getmem calls with smaller memory chuncks for CPU16 like i8086
git-svn-id: trunk@36240 -
2017-05-18 08:47:03 +00:00
pierre
570f159e65 Get SysGetMem to return immediately with Result=Nil if SysOSAlloc fails and RetrunNilIfGrowHeapFails is true
git-svn-id: trunk@36239 -
2017-05-18 08:19:17 +00:00
Mattias Gaertner
84e4b5258c fcl-passrc: fixed memleak
git-svn-id: trunk@36238 -
2017-05-17 22:58:13 +00:00
Mattias Gaertner
e7442b811e fcl-passrc: examples: parsepp: fixed freeing module
git-svn-id: trunk@36237 -
2017-05-17 22:57:36 +00:00
Mattias Gaertner
0464f1f68c pastojs: implemented TObject.Free
git-svn-id: trunk@36236 -
2017-05-17 08:25:33 +00:00
Mattias Gaertner
5006de1d40 fcl-js: comment
git-svn-id: trunk@36235 -
2017-05-17 08:24:33 +00:00
Mattias Gaertner
e9a3d2c91a fcl-passrc: resolver: function result is not writable, but elements of dynarray are
git-svn-id: trunk@36234 -
2017-05-17 08:24:11 +00:00
Károly Balogh
94b684daee m68k: reworked flags2reg, so it generates shorter code for the most common case.
git-svn-id: trunk@36233 -
2017-05-16 23:15:05 +00:00
Károly Balogh
611f8b1530 amiga-likes: make sure TAG_USER is unsigned
git-svn-id: trunk@36232 -
2017-05-16 22:11:56 +00:00
pierre
eea65cd31f + Add UseSignals macro, which conditionally adds
code using signals unit to try to interrupt runaway executables
  + Global DosBoxProcess TProcess class variable.
  + Display modified lines  inside dosbox.conf if verbose
  * Try to use Terminate when program exceeds dosbox_timeout (in seconds)
  * Handle signals if UseSignals macro is set.

git-svn-id: trunk@36231 -
2017-05-16 20:56:29 +00:00
pierre
02eafd63c4 Add disablesplash=true
git-svn-id: trunk@36230 -
2017-05-16 20:51:36 +00:00
pierre
78361f5900 Fix test for msdos targets
git-svn-id: trunk@36229 -
2017-05-16 20:36:49 +00:00
michael
9517fbe7f6 * Fix bug ID #31819, array of procedure using inline def
git-svn-id: trunk@36228 -
2017-05-16 12:00:08 +00:00
pierre
f7c2ab2e7c aggas.pas: Make WriteSection method of TGNUAssembler class virtual.
ppcgen/agppcgas.pas: Override WriteSection method in TPPCAIXAssembler class
  to compute required alignment for base sections.

git-svn-id: trunk@36227 -
2017-05-16 11:58:33 +00:00
michael
de8c780fa7 * Fix second case of bug ID #31800 (binary expression with platform identifier)
git-svn-id: trunk@36226 -
2017-05-16 11:45:18 +00:00