Commit Graph

5219 Commits

Author SHA1 Message Date
florian
24a9dd43b9 * do not crash with an ie on illegal boolean expressions in conditional compilation directives, resolves #25951
git-svn-id: trunk@27676 -
2014-04-27 15:50:37 +00:00
florian
33602db802 * try to registers more cleverly during fma code generation
git-svn-id: trunk@27671 -
2014-04-26 18:11:13 +00:00
nickysn
c5badc8a7c * fixed test cg/tvec.pp for small CPUs
git-svn-id: trunk@27652 -
2014-04-25 12:12:51 +00:00
nickysn
2de6edc44e * skip the large mem move test (which requires 4MB of memory) in tmem.pp on 16
and 8-bit CPUs

git-svn-id: trunk@27649 -
2014-04-25 09:18:04 +00:00
Jonas Maebe
01d63b376e * wait for some started threads to terminate when we fail to create
more, hopefully more robust that waiting an arbitrary amount of
    time in between
  * replaced calls to tthread.resume with calls tthread.start

git-svn-id: trunk@27624 -
2014-04-21 11:56:40 +00:00
pierre
d57d816744 powerpc64-aix C objects files added using gcc 4.8.1
git-svn-id: trunk@27585 -
2014-04-16 06:24:07 +00:00
florian
0a312a783e * avoid generation of avx code before the check if avx is supported
git-svn-id: trunk@27582 -
2014-04-14 18:18:29 +00:00
sergei
07e90aaa24 + Implemented IEEE 754-compliant checking for unordered results of floating-point compares on x86 targets. Mantis #9362.
git-svn-id: trunk@27581 -
2014-04-14 12:36:11 +00:00
florian
d88d644925 + support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
Currently it is implemented only for x86-CPUs supporting the FMA extension. While it would
  be possible to implement it in software or simulate fma(<single>,<single>,<single>) using
  double operations, it makes no sense in my opinion to do so.

git-svn-id: trunk@27564 -
2014-04-13 19:21:54 +00:00
svenbarth
e85075de7f Fix for Mantis #25604.
nmat.pas:
  * correctly disable type checks if one of the arguments for MOD, DIV, SHR, SHL, NOT, -X and +X is a generic type parameter

+ added tests

git-svn-id: trunk@27535 -
2014-04-11 16:43:53 +00:00
svenbarth
c623824374 Fix for Mantis #25605.
symtable.pas, search_objectpascal_helper:
  * handle more symbol types than just properties and methods; afterall helpers can have types, static variables and constants as well

+ added test

git-svn-id: trunk@27534 -
2014-04-11 16:13:44 +00:00
svenbarth
256c852631 Fix for Mantis #23776.
ninl.pas, tinlinenode.pass_typecheck:
  * don't generate a type error if Length() is used inside generics with a generic argument

+ added test

git-svn-id: trunk@27533 -
2014-04-11 15:57:21 +00:00
svenbarth
b0670ee34c Fix for Mantis #25600.
ptype.pas, read_named_type.array_dec:
  * generate a valid range definition if we are inside a generic and the array bounds are not ordinals (Note: the check for "parse_generic" should be improved to really detect erratic indexes that are not related to generics in any way)

+ added test

git-svn-id: trunk@27532 -
2014-04-11 14:57:23 +00:00
Jonas Maebe
4a0528399e * check all overloaded routines for mangled name conflicts on the JVM
platform, as different Pascal declarations are mapped to the same
    JVM representation

git-svn-id: trunk@27520 -
2014-04-10 21:07:14 +00:00
Jonas Maebe
3a5e675a2b * fixed typo in last change (javaa instead of java)
git-svn-id: trunk@27519 -
2014-04-10 21:07:09 +00:00
nickysn
a9cfd647ae + added i8086-msdos tests for interrupt procs, intr, getintvec and setintvec
git-svn-id: trunk@27503 -
2014-04-07 22:26:45 +00:00
nickysn
bf1e15fd39 + added another far pointer arithmetic test
git-svn-id: trunk@27490 -
2014-04-06 15:36:17 +00:00
nickysn
cef4092f3d - rm some unneeded assignments from the test
git-svn-id: trunk@27489 -
2014-04-06 15:27:53 +00:00
nickysn
a11c7fe476 + report the number of the failing test in the exit code
git-svn-id: trunk@27488 -
2014-04-06 15:15:22 +00:00
florian
701cdf8ea2 * fix for #25956: left is not necessarily the array load node when accessing an open array/array of const element
git-svn-id: trunk@27487 -
2014-04-06 15:15:16 +00:00
nickysn
cd90154b9c + added pointer const tests to the far pointer arithmetic test tfarptr3.pp
git-svn-id: trunk@27486 -
2014-04-06 15:11:49 +00:00
nickysn
8d1ed088c8 + implemented far pointer arithmetic (operating only on the offset, without
touching the segment)

git-svn-id: trunk@27485 -
2014-04-06 13:12:29 +00:00
sergei
adc8cdb5af * Calling tlabelsym.mangledname should not define the label. This was causing "already defined" errors if a label was referenced before it was defined.
+ Test.
+ Check duplicate labels in assembler blocks. This was impossible due to above bug and duplicate labels were detected only at assembling stage where no location information could be provided.

git-svn-id: trunk@27472 -
2014-04-05 01:17:36 +00:00
svenbarth
5c1b8fdad9 Fix for Mantis #19697. For this we need to have the internal static var symbol know that it came from a static field var symbol so that we can check that for generic or not.
symsym.pas, tfieldvarsym:
  + add new field fieldvarsym which holds a reference to a tfieldvarsym if the static sym was created based on such a symbol
  + add necessary methods and code to correctly load from and store to PPU
  + add new constructor create_from_fieldvar
symcreat.pas, make_field_static: 
  * use new create_from_fieldvar constructor instead of the default one
hlcgobj.pas, finalize_static_data:
  * check whether the static var is based on a generic's class var
ppu.pas:
  * increase PPU version

+ added test

git-svn-id: trunk@27466 -
2014-04-04 16:15:41 +00:00
svenbarth
c5050ea645 Forgot to commit test mentioned in last commit
git-svn-id: trunk@27465 -
2014-04-04 16:10:08 +00:00
svenbarth
689996d84f Fix for Mantis #25959.
* pdecsub.pas, parse_proc_direc:
    when a hint directive is parsed we need to check whether the new token can still be a directive

+ added test (though that won't help much as we don't check the compiler output yet... :/ )

git-svn-id: trunk@27463 -
2014-04-04 14:04:32 +00:00
Jonas Maebe
54964d92eb + forgot to commit, part of r26472
git-svn-id: trunk@27382 -
2014-03-30 16:55:03 +00:00
sergei
1744988962 * Modified behavior of CExtended type in overload selection: it is made more compatible to Extended than to Double and Single. Also an Extended parameter selects a CExtended overload (if available) instead of Double.
+ Test.

git-svn-id: trunk@27366 -
2014-03-30 07:31:58 +00:00
svenbarth
a08e8ff982 Fix for Mantis #25929
* ninl.pas, tinlinenode.handle_default.getdefaultvarsym:
    prefix the default variable's name with a "$zero" instead of a "zero" and use only the string from the second character on for comparisons so that findwithhash() and checkduplicates() generate consistent results

+ added test

git-svn-id: trunk@27320 -
2014-03-28 14:45:18 +00:00
florian
775ac591df * fix test: fma support does not necessarily mean that there is avx2 support
git-svn-id: trunk@27294 -
2014-03-27 09:41:59 +00:00
florian
23ab30c1f8 - removes accidently commited comments for testing
git-svn-id: trunk@27228 -
2014-03-22 17:03:39 +00:00
florian
3b14b28161 + support for FASM output, using it for testing does not work though, see readme.txt
git-svn-id: trunk@27227 -
2014-03-22 17:02:19 +00:00
florian
6f14dbdebe * avoid internal error if an empty record is assigned to a function result, resolves #25895
git-svn-id: trunk@27223 -
2014-03-21 16:31:57 +00:00
Jonas Maebe
f936a48afa * don't change the forward/interface definition of regular forward/interface
functions whose implementation is declared "external". This results in less
    efficient code (all calls will go through a stub), but it prevents interface
    crc changes (-> no recompilations in case of circular dependencies) and it
    also keeps the interface stable (if the external implementation is changed
    afterwards to another external routine or to a local implementation, the
    mangled name of the routine does not change) (mantis #24121)

git-svn-id: trunk@27213 -
2014-03-20 21:03:07 +00:00
florian
ff6afe27cd * enabled fma instruction as the compiler knows them since r27209
git-svn-id: trunk@27210 -
2014-03-20 20:08:58 +00:00
florian
a79be2b05c + support for FMA instructions in inline assembler
+ extended avx test code with FMA

git-svn-id: trunk@27209 -
2014-03-20 20:06:56 +00:00
florian
5d57f38619 + functions for FMA and AVX2 detection
git-svn-id: trunk@27202 -
2014-03-20 15:47:51 +00:00
florian
aa107b914c * merged avx2 branch, developed by Torsten Grundke
git-svn-id: trunk@27200 -
2014-03-20 12:03:52 +00:00
sergei
ab3ae9cf40 * Fixed comment.
git-svn-id: trunk@27183 -
2014-03-19 12:57:26 +00:00
Jonas Maebe
4dfc731bdc + support for nested classes in the WPO devirtualisation and VMT
optimization infrastructure (mantis #25869)

git-svn-id: trunk@27167 -
2014-03-16 19:46:17 +00:00
nickysn
1ef9a0509b - rm packset 1, because that's already the default in delphi mode
git-svn-id: trunk@27160 -
2014-03-16 15:32:35 +00:00
nickysn
015c7e951a * Changed the default packset setting to 1 and disabled the padding of 3-byte
sets to 4 bytes on 16 and 8-bit CPUs. This is compatible with Turbo Pascal 7
  and Delphi 1.

git-svn-id: trunk@27140 -
2014-03-14 23:51:14 +00:00
Jonas Maebe
9420a5d7a7 * also check for targets not supporting -gc/checkpointer functionality in
compiler directives, not just on the command line (mantis #25862)

git-svn-id: trunk@27128 -
2014-03-13 20:42:18 +00:00
nickysn
dcc2354760 * disallow 64-bit property index specifiers on 64-bit CPUs, since they were not
handled correctly there anyway (they were silently truncated to 32-bit)

git-svn-id: trunk@27061 -
2014-03-09 21:05:53 +00:00
nickysn
0621dd523a * objpas.integer=smallint fixes in several tests
git-svn-id: trunk@27054 -
2014-03-09 17:13:40 +00:00
nickysn
19a39cde4a * 16-bit objpas.integer type fixes in Math.DivMod
git-svn-id: trunk@27052 -
2014-03-09 16:46:49 +00:00
nickysn
5ac193dfc3 * fixed test tbsx1.pp for a 16-bit objpas.integer type
git-svn-id: trunk@27050 -
2014-03-09 16:45:15 +00:00
florian
c9f7c7d88c + test for windows which tests if an .rc file can be really compiled into an .res file
git-svn-id: trunk@27042 -
2014-03-09 10:54:33 +00:00
florian
e755a19c42 * win64 ignores -Cg
git-svn-id: trunk@27040 -
2014-03-09 10:51:42 +00:00
florian
08a4e1efe1 * handle for ... in on arrays of constant correctly, resolves also #25838
+ tests

git-svn-id: trunk@27039 -
2014-03-09 09:03:22 +00:00