Commit Graph

49676 Commits

Author SHA1 Message Date
Jonas Maebe
ef90b46e52 * comment fix
git-svn-id: trunk@34958 -
2016-11-24 19:47:48 +00:00
florian
8e7101a65a * proper naming of the optimziation in the DebugMsg
git-svn-id: trunk@34957 -
2016-11-24 18:28:48 +00:00
Jonas Maebe
d39db60934 * initialise the llvmvalueloc field for LOC_VOID locations, so they don't
get randomly passed as either byval or not (while they don't contain any
    data and hence this can't cause bugs in the generated code, it can cause
    signature mismatches in llvm)

git-svn-id: trunk@34956 -
2016-11-24 08:57:09 +00:00
Jonas Maebe
280a6e15b7 * fixed invalid memory reads and potential double freeing when removing
superfluous temporary paralocs for llvm

git-svn-id: trunk@34955 -
2016-11-24 08:57:05 +00:00
yury
ed6d993008 * pas2jni: Proper boolean handling - jboolean must be 0/1.
git-svn-id: trunk@34954 -
2016-11-23 14:39:46 +00:00
yury
d5cc2e83cf * pas2jni: Use cthreads first.
git-svn-id: trunk@34953 -
2016-11-23 14:21:49 +00:00
yury
ea16dfdcf8 * pas2jni: Suppress false warnings in Java code.
git-svn-id: trunk@34952 -
2016-11-23 13:49:04 +00:00
yury
4dcc9de92f * pas2jni: More clean Java code for sets.
git-svn-id: trunk@34951 -
2016-11-23 13:33:35 +00:00
sergei
8f4f40d240 * Disabled running the test, because it needs SSE4.1 capable CPU to run, and there is no portable way to detect it.
The purpose of test is compiling MOVSS instruction without warnings, so it still fulfills its task.

git-svn-id: trunk@34950 -
2016-11-22 10:35:41 +00:00
sergei
133fcb5ab2 * Fixed VMOVQ instruction encoding, now assembles correctly also in 32-bit code.
+ Test

git-svn-id: trunk@34949 -
2016-11-21 13:59:44 +00:00
sergei
b5660401fe * Some cleanup for AVX part of internal assembler. Functionality is not changed.
git-svn-id: trunk@34948 -
2016-11-21 07:49:43 +00:00
Jonas Maebe
acaae2bf3c * fixed test so it does not use uninitialised floating point values (that
could trigger exceptions)

git-svn-id: trunk@34947 -
2016-11-21 07:39:17 +00:00
Jonas Maebe
48ef33a8b3 * fixed interprocedural gotos for llvm
o ensure that the label's local "jumpbuf" variable gets moved to the
     parentfpstruct soon enough
   o don't generate global symbols for interprocedural labels: they're not
     necessary if they are only used via setjmp/longjmp (all references are
     local in that case), and if they are referenced via an assembler block
     then we'll have to handle them by passing a blockaddress() expression
     as parameter to that assembler block (which does not require a global
     symbol, but which is not yet implemented)

git-svn-id: trunk@34946 -
2016-11-21 07:39:13 +00:00
Jonas Maebe
ade45eb31a + support for llvm load nodes of labelsym using blockaddress()
git-svn-id: trunk@34945 -
2016-11-21 07:39:09 +00:00
Jonas Maebe
3b7d9447ae * blockaddress creates a constant operand for another opcode, it's not an
independent operation
   o additionally, it does not take a "label" qualifier for its label argument

git-svn-id: trunk@34944 -
2016-11-21 07:39:05 +00:00
sergei
ebe134febc * Fixed memory reference size for MOVSS instruction, Mantis #29954.
git-svn-id: trunk@34943 -
2016-11-21 03:31:25 +00:00
sergei
870fda34d5 * x86 AT&T reader and writer: cleaned up usage of attsufMM suffix:
* It is now only used to select size of vector instructions (i.e. 128 or 256 bits)
  * Scalar instructions reverted to use attsufINT suffix (selecting between 32 or 64 bits).
  * Additionally, vcvtsi2sd and vcvtsi2ss with rm64 operand are x86_64 only.

git-svn-id: trunk@34942 -
2016-11-21 02:07:13 +00:00
florian
3b665ddea2 - unused variable removed
git-svn-id: trunk@34941 -
2016-11-20 22:28:50 +00:00
florian
86f0b59095 * avoid conversion to larger type in Align
git-svn-id: trunk@34940 -
2016-11-20 19:02:53 +00:00
florian
01e1e9410d + dummy heap status implementations
git-svn-id: trunk@34939 -
2016-11-20 18:31:03 +00:00
florian
b527bab087 * better check if we are in the main program which never returns
git-svn-id: trunk@34938 -
2016-11-20 18:01:13 +00:00
florian
e33b2920dc + CallReg2Jmp optimization
git-svn-id: trunk@34937 -
2016-11-20 18:00:27 +00:00
florian
3eef641833 * convert jmp into rjmp only of the target is not a function
git-svn-id: trunk@34936 -
2016-11-20 18:00:01 +00:00
florian
0882c13cb7 * do not move dest to a new register if not needed in tcgavr.g_concatcopy
git-svn-id: trunk@34935 -
2016-11-20 16:07:53 +00:00
florian
e49a826837 + PushPushPopPop2MovMov optimization
git-svn-id: trunk@34934 -
2016-11-20 16:03:49 +00:00
florian
cfb5ebeb23 * Find* subroutines return an error by default
git-svn-id: trunk@34933 -
2016-11-20 16:03:12 +00:00
florian
0dbcd5daa9 * do not run test, if no stack checking is available
git-svn-id: trunk@34932 -
2016-11-20 16:02:37 +00:00
florian
13de8c6808 * -Or => -Ooregvar
git-svn-id: trunk@34931 -
2016-11-20 15:45:01 +00:00
florian
16fa079a2a * allocate always a minimum block size, else free list management causes memory corruption
git-svn-id: trunk@34930 -
2016-11-20 15:44:22 +00:00
florian
baa33d7e2f * pass enabled features to the compiler when running tests on the embedded target, so tests can depend on the features
git-svn-id: trunk@34929 -
2016-11-20 15:43:27 +00:00
Jonas Maebe
a89a4d905f + test for already fixed mantis #30948
git-svn-id: trunk@34928 -
2016-11-20 11:44:25 +00:00
florian
10132bfafa * removed accidently committed file
git-svn-id: trunk@34927 -
2016-11-20 11:26:48 +00:00
yury
1ccf551d1c * android: Try to get the package files directory for any shared library. If it is valid use it as a home dir.
* android: Always set the syslog tag.

git-svn-id: trunk@34926 -
2016-11-20 10:53:23 +00:00
michael
47a59f269a * Added some explanatory comments about the use of this include file
git-svn-id: trunk@34925 -
2016-11-20 10:07:15 +00:00
sergei
8e55231640 - Removed what's called "GAS bugfix" for VCVTDQ2PD instruction. Rationale:
o "Intel instruction set reference" states that source operand can be XMM register or memory, so GAS behavior
    is correct. If any other assembler expects an YMM register, it must be fixed elsewhere.
  o x86ins.dat does not allow YMM register as source operand for VCVTDQ2PD, and instructions are checked for validity
    before writing them out, therefore this code was simply never executed.

git-svn-id: trunk@34924 -
2016-11-20 04:23:41 +00:00
florian
2b6ccb3565 * better error recovery
git-svn-id: trunk@34923 -
2016-11-19 22:00:00 +00:00
florian
e218f4f33b * checking the address of the storage location of a procedure variable makes no sense, check the variable contents itself instead
git-svn-id: trunk@34922 -
2016-11-19 21:57:56 +00:00
florian
9a4c7e2244 * return defined values for GetDate and GetTime for the embedded targets
git-svn-id: trunk@34921 -
2016-11-19 21:55:40 +00:00
florian
0520d246d0 * changed LdiCp2Cpi into LdiMov/Cp2Ldi/Cpi and improved it
git-svn-id: trunk@34920 -
2016-11-19 19:22:47 +00:00
florian
c86bac021b + xch instruction for avr
git-svn-id: trunk@34919 -
2016-11-19 19:21:09 +00:00
sergei
edf943a4f6 * Changed memory operand size for VMOVSS instruction to 32 bits, Mantis #29957.
git-svn-id: trunk@34918 -
2016-11-18 23:37:01 +00:00
florian
56252d59f0 + support for the PREFETCHTW1 instruction based on a patch by Emelyanov Roman, resolves #30933
git-svn-id: trunk@34917 -
2016-11-18 20:19:39 +00:00
svenbarth
63b0024e4c * fix for Mantis #30626: unset current_procinfo so that further specializations don't use a symtable to specialize themselves in that they shouldn't use (cause current_procinfo takes precedence)
git-svn-id: trunk@34916 -
2016-11-18 16:17:09 +00:00
svenbarth
0e7a9ad375 * partial fix for Mantis #30831 (partial, because no exception has been encountered yet): when checking whether the left node of a vmtaddrnode is a generic, don't rely on df_generic, but instead use is_generic which checks for a true generic (the other will also be true if it's merely a structured type declared (or specialized) inside another generic)
+ added test

git-svn-id: trunk@34915 -
2016-11-18 14:43:45 +00:00
svenbarth
fc5ce63134 * fix for Mantis #30832: instead of checking a procdef's struct for df_generic check the procdef itself, this way global generic methods or generic methods that are part of non-generic classes or records are caught as well.
+ added test

git-svn-id: trunk@34914 -
2016-11-18 14:01:03 +00:00
marco
3f080ad23f * fix for 0390945
git-svn-id: trunk@34912 -
2016-11-18 09:23:20 +00:00
sergei
d5ffc2da97 * Force OPR_LOCAL operand into reference whenever subscripting is used, so that all record fields are handled in same way regardless of their offset. Previously, operand was changed to reference only by fields with non-zero offset (see logic in tcgasmnode.ResolveRef method).
git-svn-id: trunk@34911 -
2016-11-18 05:56:12 +00:00
Tomas Hajny
1e6ee7f3c7 * fix remaining search handle leaks in Dos.FSearch - fix for bug #30896
git-svn-id: trunk@34910 -
2016-11-17 22:05:17 +00:00
florian
67570a6262 + patch to support assigning class procedures to procedure variables by Ondrej Pokorny, resolves #30936
+ additional tests

git-svn-id: trunk@34909 -
2016-11-17 19:40:42 +00:00
sergei
4ddbb7cd26 * Fixed assembler blocks to comply with x86_64 ABIs, which normally do not allow to change stack pointer at arbitrary locations. Register RBX is now saved/restored by compiler in function prologue, due to its presence in list of modified registers.
git-svn-id: trunk@34908 -
2016-11-17 10:58:10 +00:00