Commit Graph

12405 Commits

Author SHA1 Message Date
Legolas
2503ac1d97 * Updated nds to devkitARM r33
git-svn-id: trunk@17843 -
2011-06-27 12:22:46 +00:00
florian
589d061c3d * when comparing overridden methods, ignore hidden parameters because overridden methods does not
need to repeat a calling convention specifier so if the calling convention specifier 
  influences the hidden parameters, the methods are not considered equal, resolves #19159

git-svn-id: trunk@17832 -
2011-06-26 12:34:59 +00:00
florian
6e1d5e0aa0 * handle pointer+type param. correctly, resolves #19548
* convert exit(x) into result:=x; exit;, enables further optimizations in the future

git-svn-id: trunk@17829 -
2011-06-25 18:05:49 +00:00
sergei
7d99f95c45 * Always create a section before emitting data to current_asmdata.asmlists[al_typedconsts]. Without it, such data ends up in sections created elsewhere, creating very non-obvious dependencies on other parts of compiler.
git-svn-id: trunk@17816 -
2011-06-24 02:05:56 +00:00
florian
a6b2fcfe22 * fixes breakage of r17766, should resolve #19598
git-svn-id: trunk@17814 -
2011-06-23 21:30:40 +00:00
florian
8e7f39f176 * constant evaluation of ror/rol if they are internally handled, resolves #6300
* renamed rox_x_x to rox_x_y

git-svn-id: trunk@17810 -
2011-06-23 20:54:08 +00:00
florian
fda10ff098 * insert type conversions to the prototype type for internal procedures as well, rol/ror/sar and friends require the exact type
git-svn-id: trunk@17808 -
2011-06-23 20:50:47 +00:00
pierre
8a0ed92957 * Remove useless code for i386
git-svn-id: trunk@17806 -
2011-06-23 14:50:31 +00:00
pierre
239944f8d0 + Use DLL name in assembler labels used to import DLL functions/variables
in Windows, Emx and OS2 targets.
    This fixes test failures: test/library/tlib1b.pp and lib2b.pp

    link unit TLinker.AddImportSymbol: Added symmangledname parameter.
    ogbase unit TImportSymbol.Create: Add AMangledName parameter.
    fmodule unit TModule.AddExternalImport: Add symmangledname parameter.
    fppu unit: Also put mangled name string for imported symbol.
    ppu unit: Increase PPUVersion
    utils/ppudump.pp: Adapt to PPU change above.
    systems/T_OS units: Use ImportSymbol.MangledName property to create
    import libraries or .idata sections.

git-svn-id: trunk@17804 -
2011-06-23 11:38:57 +00:00
pierre
f220513821 + Warning for possible library overloading
git-svn-id: trunk@17803 -
2011-06-23 08:28:49 +00:00
Jonas Maebe
19fb48dfa9 * prefer "any array" -> "open array" over "single element" -> "open array"
conversions, instead failing to choose the best overload (Delphi-compatible)

git-svn-id: trunk@17800 -
2011-06-22 19:32:28 +00:00
sergei
3dba3a0219 * Float constants must be pooled using their the actual type, not the mapped type of assembler instruction. Otherwise e.g. extended may be mixed up with cextended, because both are mapped to ait_real_80bit.
git-svn-id: trunk@17787 -
2011-06-22 02:57:07 +00:00
pierre
1a9f4ba314 * Improve ogbase linker script support, add warnings for unknown entries
git-svn-id: trunk@17784 -
2011-06-21 16:49:50 +00:00
pierre
33cb4b4a83 + generic_cpu defines fro ppudump
git-svn-id: trunk@17779 -
2011-06-20 21:44:18 +00:00
pierre
1d8851f0eb Use systems.inc include file
git-svn-id: trunk@17775 -
2011-06-20 15:17:47 +00:00
pierre
4729b76ad9 Added forgotten include file
git-svn-id: trunk@17774 -
2011-06-20 14:57:34 +00:00
pierre
83f100432c + Move enumration types uses in ppu files from systems.pas
into systems.inc include file for direct inclusion by utils/ppudump.pp
  + new generic/cpuinfo.pas unit to allow compilation of ppudump without any
    CPU specific code.
  * Modified utils/ppudump rule in utils Makefile.fpc
    to use generic/cpuinfo unit by use of -dGENERIC_CPU
  * globals unit changed to support GENERIC_CPU.
  * utils/ppudump.pp changed to remove local enumeration types.

git-svn-id: trunk@17773 -
2011-06-20 14:16:57 +00:00
sergei
2f7c779fa4 * tmoddivnode.simplify: made result definitely assigned and removed local var
* tshlshrnode.simplify: likewise

git-svn-id: trunk@17770 -
2011-06-19 21:48:18 +00:00
sergei
1470d91ba1 * Optimized pooling of floating point and large set constants using hash tables.
git-svn-id: trunk@17769 -
2011-06-19 21:41:41 +00:00
florian
b00a610aec * optimize andb/w const,reg andw/l const,reg sequences as well
git-svn-id: trunk@17766 -
2011-06-18 15:22:09 +00:00
florian
37b8b791d5 * overloaded versions of IsNan, resolves #14351
* prefer <ord> -> single over <ord> -> double/extended, this is delphi compatible

git-svn-id: trunk@17758 -
2011-06-14 20:38:51 +00:00
joost
499d6f78d1 * Fixed recipe commences before first target error when using GNU make version 3.82
git-svn-id: trunk@17757 -
2011-06-14 20:21:15 +00:00
florian
ce76ce8769 * fixed wrong tmpref usage as mentioned by Pierre on the mailing list
git-svn-id: trunk@17754 -
2011-06-14 18:48:22 +00:00
pierre
4850190663 * Change TImplementedInterface.GetCopy from a warning at compile time to an internalerror if called
git-svn-id: trunk@17752 -
2011-06-14 15:19:38 +00:00
pierre
e4bb241409 * Silence warning in MakeSharedLibrary
git-svn-id: trunk@17750 -
2011-06-14 12:37:27 +00:00
sergei
3eaf8df446 * Don't use hardcoded value for maxoutputlists
git-svn-id: trunk@17734 -
2011-06-13 07:11:56 +00:00
marco
90c47c5c86 * fix for renaming of type_interface_noguid (or so) to type_E_interface...
by Florian in r17722

git-svn-id: trunk@17731 -
2011-06-12 13:45:38 +00:00
florian
4f18a59b87 * fixes errore.msg file errors, resolves #19541
git-svn-id: trunk@17722 -
2011-06-11 21:21:59 +00:00
florian
60e16260e1 o adjust define handling to resolve #19519
* ensure that all defines are written when running the compiler with -va
  * even if a define is defined/undefined, write a message if it is written again

git-svn-id: trunk@17714 -
2011-06-10 19:03:27 +00:00
Jonas Maebe
78c3e6b359 * always use crtbeginS.o/crtendS.o when generating PIC code, not just when
generating libraries for x86_64 (at least all Linux systems I checked
    have the S-variants of those files) (mantis #19501)

git-svn-id: trunk@17713 -
2011-06-10 14:17:20 +00:00
Jonas Maebe
a03a597374 * don't call assembler when using -s in combination with -ap (mantis #19401)
git-svn-id: trunk@17712 -
2011-06-10 13:42:59 +00:00
Jonas Maebe
9f4f21baa1 * set the line information for the initialization of local variables with
their default value to the entrypos of the function, instead of the end
    (mantis #19459)

git-svn-id: trunk@17711 -
2011-06-10 12:34:33 +00:00
sergei
19c8000056 64-bit masm writer:
* fixed writing rip-relative references
* use correct name to close the last section

git-svn-id: trunk@17710 -
2011-06-10 03:47:13 +00:00
sergei
d4b2998e07 * Another attempt to fix x86_64 stack frame calculation, tested better this time.
git-svn-id: trunk@17709 -
2011-06-10 03:41:33 +00:00
sergei
c40b8d92c7 * Revert r17695 because it breaks cycling.
git-svn-id: trunk@17698 -
2011-06-08 19:19:24 +00:00
sergei
318a55b96c * x86_64-win64: fixed stack calculations so that 32-byte spilling area is only included once and only for non-leaf procedures (it was included twice with -O- and 3 times with -O2, wasting large amounts of stack memory).
git-svn-id: trunk@17695 -
2011-06-08 14:46:22 +00:00
florian
81bd7867b3 * it makes no sense to search the windows dirs for dlls when cross compiling
git-svn-id: trunk@17687 -
2011-06-07 19:24:53 +00:00
pierre
09e9d922c7 * Reset F to NIL after freeing in tempclose
git-svn-id: trunk@17683 -
2011-06-07 16:10:25 +00:00
pierre
82ffdb48c9 * Fix tppufile.tempopen method needed for go32v2 cycle
git-svn-id: trunk@17674 -
2011-06-06 16:11:19 +00:00
florian
449c20ce63 * moved pic helpers into system unit, resolves #8119
git-svn-id: trunk@17669 -
2011-06-05 21:16:11 +00:00
florian
2f2c3ea545 * ignore 0 for code alignment, makes broken tests by r17659 working again
git-svn-id: trunk@17668 -
2011-06-05 21:12:26 +00:00
florian
0b9099f13f * fixes mistake in r17664
git-svn-id: trunk@17667 -
2011-06-05 17:51:09 +00:00
sergei
354d0520b7 + x86 assembler: fixed MOVABS instruction (it is a x86_64-only subset of MOV with 8-byte immediates/offsets) and same-form encodings of MOV instruction.
git-svn-id: trunk@17666 -
2011-06-05 17:32:18 +00:00
florian
ebc7a10954 * synchronized -Wxxxxx handling in options.pas and help screen, resolves #19400
* limited -Wxxxxx options to the targets they apply to

git-svn-id: trunk@17664 -
2011-06-05 15:39:44 +00:00
florian
33de8c8336 * fix potential range check error in cfileutl, should resolve #19405
git-svn-id: trunk@17660 -
2011-06-04 22:14:55 +00:00
florian
93e53e1990 * allow also smaller values for code alignment parameters than the current one, resolves #19463
* limit code alignment parameters to power of 2 up to 256
* give an error for an invalid code alignment directive

git-svn-id: trunk@17659 -
2011-06-04 20:56:15 +00:00
florian
69e7d8b02f * generate correct PIC in tcg386.a_loadaddr_ref_cgpara, resolves #19464
git-svn-id: trunk@17657 -
2011-06-04 16:57:45 +00:00
Jonas Maebe
7173b9dfed * fixed (harmless) range check errors
git-svn-id: trunk@17643 -
2011-06-02 20:07:06 +00:00
sergei
9608c4eabe * Interface wrappers must be global when linking smart, Mantis #19462. Other targets already have this condition in place.
git-svn-id: trunk@17631 -
2011-06-02 10:49:28 +00:00
joost
45bc3fcae0 * Enabled safecall on x86_64-linux
git-svn-id: trunk@17629 -
2011-06-02 10:43:18 +00:00