Commit Graph

2989 Commits

Author SHA1 Message Date
florian
728f53daa6 * test file for popcnt
git-svn-id: trunk@22288 -
2012-09-02 20:59:33 +00:00
florian
86a6cee8fa - removed due to BSD license header
git-svn-id: trunk@22286 -
2012-09-02 20:46:58 +00:00
Jonas Maebe
a5cb157091 * enable specifying the alignment mismatch of the frame/stack pointer
relative to the normal stack alignment of the target (e.g., when using
    ebp as framepointer, all addresses are offset 8 to the stack pointer) in
    the temp generator. This enables allocating temps/locals with the correct
    alignment as long as the required alignment is not bigger than the
    guaranteed stack pointer alignment (fixes mantis #15582 on systems where
    the stack pointer is at least aligned to 16 bytes; e.g., not yet on
    i386-platforms other than darwin)

git-svn-id: trunk@22277 -
2012-09-02 14:32:05 +00:00
Jonas Maebe
4cae00f97a * never use a linear table for enum<->string translation when two enums have
the same value (mantis #22570)

git-svn-id: trunk@22276 -
2012-08-31 18:51:59 +00:00
Jonas Maebe
ad054831bb * save/restore itype and implementsgetter fields of timplementedinterface
to/from ppu, because it can be required while resolving type casts
    (mantis #22741)

git-svn-id: trunk@22266 -
2012-08-29 16:07:55 +00:00
pierre
3c96d89a6b Add test for bug regarding {$pop} next to a statement
git-svn-id: trunk@22264 -
2012-08-29 14:30:14 +00:00
Jonas Maebe
f5de7e34d3 * only remove the calculation of unused parameters of inline routines if
they don't have explicit side-effects, and if -Oodeadvalues (part of -O4)
    is active (because it can result in the removal of range check errors,
    segmentation faults, etc)

git-svn-id: trunk@22254 -
2012-08-26 21:04:46 +00:00
Jonas Maebe
68d9e95120 * if the size of an operand is not explicitly forced in intel assembler
(e.g. via "dword ptr"), let the size of accessed fields in memory
    expressions override the default size (mantis #18019)

git-svn-id: trunk@22250 -
2012-08-26 17:05:31 +00:00
Jonas Maebe
198625af47 * fixed memory statistics after try_concat_free_chunk_forward() concatenated
some blocks, but the result was still not large enough to satisfy a
    reallocmem call (mantis #14315)

git-svn-id: trunk@22249 -
2012-08-26 15:29:44 +00:00
Jonas Maebe
193c7af57f * print literal e/E in formatfloat if not followed by +/- (remaining part of
mantis #22290)

git-svn-id: trunk@22248 -
2012-08-26 14:51:32 +00:00
Jonas Maebe
4d0e4e1b56 * treat "[var + rip]" in intel assembler mode as addr_pic_no_got on x86-64
(mantis #22665)
  + support "[var wrt ..gotpcrel]" nasm/yasm syntax in intel assembler mode
    for GOT-relative accesses on x86-64, + give an error when trying to do
    this on win64 (it doesn't have a GOT)
  * moved code that give a warning when using GOT-relative accesses to
    static data on x86-64 from the AT&T reader to rax86 so it's also
    active for the Intel assembler reader
  + added warning when not using GOT-relative accesses (but plain
    RIP-relative instead) to global data on non-Win64 x86-64

git-svn-id: trunk@22243 -
2012-08-25 15:12:49 +00:00
Jonas Maebe
85765364ee * properly compare parameter lists involving pointers to or classrefdefs of
forward defined types by maing sure that we always compare typesyms in
    that case instead of the forwarddefs (mantis #22705)

git-svn-id: trunk@22215 -
2012-08-23 20:58:22 +00:00
sergei
c529356693 * Split most CPU-specific code from ogelf.pas into newly created cpuelf.pas units in CPU subdirectories.
git-svn-id: trunk@22208 -
2012-08-23 11:49:49 +00:00
florian
3754efa682 + Lazarus project file for PowerPC64
git-svn-id: trunk@22175 -
2012-08-22 18:00:11 +00:00
michael
d666240097 * Added pas2fpm
git-svn-id: trunk@22173 -
2012-08-22 16:45:57 +00:00
michael
d118f4fb41 * Added passrcutil easy-use unit and component
git-svn-id: trunk@22172 -
2012-08-22 16:43:14 +00:00
Jonas Maebe
288d1ec74a * support referencing "result" in nostackframe pure assembler routines if
the result location is a simple location (a single register/reference)
    (mantis #22490)
  * print an error when accessing "result" in a nostack pure assembler routine
    if the result location is not simple

git-svn-id: trunk@22166 -
2012-08-21 19:51:40 +00:00
michael
eb2c0f52f4 * pas2ut, initial version (create unit tests from pascal unit)
git-svn-id: trunk@22165 -
2012-08-21 19:43:26 +00:00
michael
28db5237fe * pastounittest added.
git-svn-id: trunk@22164 -
2012-08-21 19:42:40 +00:00
michael
53c03717d5 * SQL DB loader implemented
git-svn-id: trunk@22163 -
2012-08-21 19:41:51 +00:00
michael
d519365da0 * Tests for procedure/function declarations, fixes in parsing of those
git-svn-id: trunk@22157 -
2012-08-21 13:24:37 +00:00
sergei
d79511f96e + Basic ld script parsing capabilities (barely enough to parse glibc2.1 'libc.so' files, lacks any error handling).
+ Support linker input source grouping functionality.
* Promote TStaticLibrary to something like generic linker input statement, it can now hold regular ObjData or a group of other TStaticLibrary objects in addition to tarobjectreader.

git-svn-id: trunk@22155 -
2012-08-21 08:37:39 +00:00
michael
2939c41263 * Patch for sdfdata multiline support and assoiated test case from Reinier Olislagers (bug 22237 and bug #22213)
git-svn-id: trunk@22145 -
2012-08-20 16:41:15 +00:00
michael
649bbae1c3 * Expression parsing tests, nested types
git-svn-id: trunk@22144 -
2012-08-20 16:36:18 +00:00
florian
1da4c0c3ce * SinCos overloads added, resolves #22663
git-svn-id: trunk@22139 -
2012-08-19 22:09:03 +00:00
michael
e1ad1a02d2 * 2 test cases from Reinier Olislagers
git-svn-id: trunk@22138 -
2012-08-19 22:08:32 +00:00
michael
8019634104 * Class parsing tests (preparing for nested types)
git-svn-id: trunk@22131 -
2012-08-19 16:45:44 +00:00
Jonas Maebe
504544e173 * fixed null-termination in StringToWideChar() if the buffer is larger than
the string (mantis #22669)

git-svn-id: trunk@22124 -
2012-08-19 13:48:02 +00:00
Jonas Maebe
f3ad4af343 * make sure valid_for_assign() returns false for inlined function bodies
(mantis #22613)

git-svn-id: trunk@22099 -
2012-08-16 19:22:17 +00:00
tom_at_work
f252fd369e Tried to reorganize the ARM define mess in rtl/arm/arm.inc. Instead of requiring to enumerate all possible ARM variants each time a CPU feature is used, add a define of the format CPUARM_HAS_XXX and use that. Note that a better solution would be to properly implement the compiler cpuinfo infrastructure, however that is much more work.
+ CPUARM_HAS_BX is defined if the CPU supports the BX* instruction
  + CPUARM_HAS_REV is defined if the CPU supports the REV instruction. Note that you still have to check for compiler versions > 2.6.0 since the assembler reader of 2.6.0 does not understand that instruction.
  + CPUARM_HAS_IDIV is defined if the CPU supports the sdiv, udiv instructions. Use of this fixes a bug where previously these instruction were only used for armv7-m, while cortex3m cpus also support it.
  + CPUARM_HAS_LDREX is defined if the CPU supports the ldrex/strex instructions. Use of this fixes a bug with armv7(-a) cpus where this path has not been used.
  + SYSTEM_HAS_KUSER_CMPXCHG is defined if the system (mainly OS) support the kuser_cmpxchg functions. Use of this fixes a bug where ARMHF systems did not use it for synchronization (although ARMHF is armv7+ only, i.e. the LDREX path is used anyway)

git-svn-id: trunk@22081 -
2012-08-14 19:45:03 +00:00
michael
9635787b5a * Added functionality to create fpdoc.css from internal copy
git-svn-id: trunk@22079 -
2012-08-14 18:47:57 +00:00
florian
5b90a02e75 * inherit nf_write/nf_modify in tcallnode.replaceparaload also when replacing parameters
git-svn-id: trunk@22075 -
2012-08-13 15:06:16 +00:00
Jonas Maebe
a63a603cc1 * allow conversion from niln to not-yet-fully-resolved classrefdefs
(mantis #22593)

git-svn-id: trunk@22025 -
2012-08-07 09:56:08 +00:00
Jonas Maebe
aad3ce960a * give an error when trying to give a parameter of a non-simple type a
default value (mantis #22343)
  * give an error when specifying an invalid default value (e.g. a
    floating point number for a longint parameter)

git-svn-id: trunk@22021 -
2012-08-06 20:13:20 +00:00
Jonas Maebe
3c1b82f9a0 * don't add value transformations for internal type casts from/to currency
(mantis #22561)

git-svn-id: trunk@22014 -
2012-08-05 15:36:44 +00:00
florian
89980e21f3 + binary objects for armhf
git-svn-id: trunk@22007 -
2012-08-04 09:47:37 +00:00
michael
b867010691 * Test cases for types, var, const, resource string. Start of statement tests
git-svn-id: trunk@22005 -
2012-08-04 08:48:23 +00:00
svenbarth
360592d1f4 Some corrections after the loosening of operator overloads:
* check "A op B" and "B op A" again for operators that can be commutative (all binary ones except shl, shr, div, mod, **, / and -)
* also check for Nil for classrefdefs if left side is a pointer (allows "TClass var" <>/= Nil again, after the above changes)
* don't allow overloads for "implicit pointer type <>/= pointer" and the other way around (this fixes non compiling Objective Pascal test tobjc21.pp and also the new toperator87.pp test)
* some formating corrections

+ added test for "TObject <> Pointer"
+ added test for "TClass <>/= Nil"

git-svn-id: trunk@21983 -
2012-07-29 12:38:09 +00:00
svenbarth
b0458b55a3 Loosen the restriction regarding operator overloads by applying a (modified) patch from JC Chu. This fixes Mantis #22359.
The changes are built up in a way that all operators on two given types are not allowed if a default implementation for that operator exists. This implies that there is a possibility to have a overload work for (in this order) type A and B, but not for B and A. This is for example the case for Set + Enum (which seems to have a default implementation) where Enum + Set is allowed. The added tests try to detect as many default implementations as feasible, but can't cover everything...

git-svn-id: trunk@21975 -
2012-07-26 18:02:01 +00:00
Jonas Maebe
44fd18a041 * correctly set expectloc for bool->cbool type conversions (mantis #22502)
git-svn-id: trunk@21973 -
2012-07-26 14:50:28 +00:00
Jonas Maebe
df2eddd169 * correctly deal with writing debug information in the Stabs writer for class
hierarchies from other units that were compiled without debug information
    in case not all classes from the hierarchy are explicitly used
    (mantis #22495, #21503, #21259)

git-svn-id: trunk@21972 -
2012-07-26 14:27:10 +00:00
florian
9672f0537a * handle exports with a name consisting of a single character correctly
git-svn-id: trunk@21945 -
2012-07-22 14:23:09 +00:00
Jonas Maebe
6cc78635d7 * send full x/y ansi position information in case of an X-coordinate
overflow (don't know what the y-coordinate is at that point, because the
    window may be  wider than the artificial screenwidth) (mantis #20880)

git-svn-id: trunk@21925 -
2012-07-17 18:03:23 +00:00
Jonas Maebe
b1d00b66ac * fixed internalerror after invalid type node in subscript node
(mantis #22395)

git-svn-id: trunk@21917 -
2012-07-15 18:17:29 +00:00
sergei
21524c56c6 * If subtrahend symbol belongs to current section, generate a RELATIVE relocation instead of PIC_PAIR. Now the corresponding relative expressions in assembler operands compile correctly on all i386 targets (and x86_64 too, although such feature is less important there).
+ Test.

git-svn-id: trunk@21864 -
2012-07-11 09:05:21 +00:00
pierre
6bc339192d MIPS system errors separated into errno-mips.inc file
git-svn-id: trunk@21827 -
2012-07-09 13:17:29 +00:00
Jonas Maebe
1b3b097f3a * always interpret a function name on the RHS as a recursive function
call in MacPas mode, like in TP/Delphi (mantis #22344)

git-svn-id: trunk@21817 -
2012-07-08 09:52:30 +00:00
pierre
c2cd8246cb Override tloadnode.pass_1 to for use of got for shared library variables and genrate_picvaraccess
git-svn-id: trunk@21792 -
2012-07-05 21:07:46 +00:00
Jonas Maebe
3f5ae8b05f * forgot to commit, part of r21765
git-svn-id: trunk@21766 -
2012-07-03 21:23:20 +00:00
svenbarth
71c13190e1 Fix for Mantis #22329.
symtable.pas, searchsym_in_class:
* if we found a helper method that has overload defined we should not forget the symbol as there can be a case that no method with that name is defined in the extended class hierarchy
symtable.pas, searchsym_in_record:
* analogous to the above

+ added test given in the issue
+ added analogous test for record helpers

git-svn-id: trunk@21764 -
2012-07-03 16:27:03 +00:00