florian
c57f44d75b
+ div 2^n optimization for arm
...
git-svn-id: trunk@8864 -
2007-10-20 17:42:29 +00:00
micha
bae0251549
* fix big endian arm loading (fixes issue #8752 )
...
git-svn-id: trunk@8862 -
2007-10-20 14:31:08 +00:00
florian
4b172f5973
* made rtti for dyn. arrays more delphi compatible, resolves #9464
...
git-svn-id: trunk@8853 -
2007-10-19 20:27:45 +00:00
peter
43c2694d50
* fixed REX placement for xmm opcodes
...
git-svn-id: trunk@8850 -
2007-10-18 23:30:35 +00:00
peter
daf320225b
* strip ./ prefixes and / suffixes from paths
...
* compile unit name requires (relative) path prefix otherwise the debugger
thinks that there is also a copy of the file in the current directory
git-svn-id: trunk@8847 -
2007-10-18 22:53:39 +00:00
peter
658d9fcc92
* reset subregister before writing mm register names
...
git-svn-id: trunk@8846 -
2007-10-18 21:52:04 +00:00
peter
ad944fd198
* move x86_64 specific int_to_real conversion to nx64cnv
...
* fix x86_64 code for none loc_register/loc_reference location
git-svn-id: trunk@8844 -
2007-10-18 20:46:44 +00:00
peter
bfca4e67fa
* -CO option to check for possible integer overflows
...
git-svn-id: trunk@8842 -
2007-10-18 19:55:22 +00:00
Jonas Maebe
2db3d54b2e
* support for -Cg- to disable pic code
...
git-svn-id: trunk@8841 -
2007-10-18 18:23:03 +00:00
peter
a6eb5d839b
* allow types in interfaces
...
git-svn-id: trunk@8840 -
2007-10-18 07:09:36 +00:00
peter
1e123d66ba
* improved generics
...
git-svn-id: trunk@8838 -
2007-10-18 00:24:05 +00:00
peter
6434772c3c
* error message when a goto label is optimized away
...
git-svn-id: trunk@8837 -
2007-10-17 21:52:25 +00:00
Jonas Maebe
83bab3b071
+ documented -XR in the help pages
...
* specified OSes to which -Xr applies
git-svn-id: trunk@8834 -
2007-10-17 19:37:32 +00:00
Jonas Maebe
3155b650a1
* pass "-syslibroot sysrootpath" to the darwin linker if -XRsysrootpath
...
is used (mantis #9953 )
git-svn-id: trunk@8833 -
2007-10-17 19:25:06 +00:00
peter
9ca132c61b
* look in main source dir instead of loaded_from unit dirs. The loaded_from dir is normally
...
already searched by the unit search path. And it prevented overriding the path where to
look first for a unit. See bug #9664
git-svn-id: trunk@8828 -
2007-10-16 20:55:24 +00:00
florian
7229dcfdcb
* setup a proper symtable stack before parsing the generic declaration itself, resolves #9419
...
git-svn-id: trunk@8820 -
2007-10-15 19:43:01 +00:00
Jonas Maebe
c03f19fa50
* in case of "movzbl %dl,%edx" etc, %edx depends on its previous value.
...
regloadedwithnewvalue() gave the wrong answer for this in case
candependonprevvalue was false (caused a wrong optimization in the
space() function of the rtl)
git-svn-id: trunk@8808 -
2007-10-14 20:22:23 +00:00
florian
f7b0abffec
o BeOS patch by Olivier Coursiere:
...
* reenable creating shared object using the libc based rtl. I have also added gc-sections support.
git-svn-id: trunk@8806 -
2007-10-14 18:37:00 +00:00
florian
9ab1a1c550
* allow mla to take 4 operands, resolves #9461
...
git-svn-id: trunk@8801 -
2007-10-14 18:08:49 +00:00
florian
00fef0fdd0
* allow the usage of fields of parent classes for property readers/writers, resolves #9095
...
git-svn-id: trunk@8799 -
2007-10-14 17:54:00 +00:00
Jonas Maebe
564d93bab8
* quoted a bunch of variables
...
git-svn-id: trunk@8793 -
2007-10-14 12:26:16 +00:00
Jonas Maebe
66520db151
* fixed in case the fpc binary is not in the PATH
...
git-svn-id: trunk@8792 -
2007-10-14 12:19:52 +00:00
Jonas Maebe
dc71827e2e
* procedure version of fpc_copy to avoid errors with {$x-} (mantis #9918 )
...
git-svn-id: trunk@8790 -
2007-10-14 10:55:40 +00:00
Jonas Maebe
8ed15c96bb
- removed COMPPROCINLINEFIXED define and ifdefs (fixed in 2.2.0)
...
git-svn-id: trunk@8789 -
2007-10-14 09:44:18 +00:00
florian
bb314e5456
* regenerated
...
git-svn-id: trunk@8788 -
2007-10-14 09:32:15 +00:00
florian
6eff22d466
* remove disassembler hint \331 from comisd, it causes rex to be
...
generated too early. rex must be generated after the 0x66 prefix.
There might be more problems like this which must be fixed.
git-svn-id: trunk@8787 -
2007-10-14 09:32:01 +00:00
florian
5d31cd02a7
* regenerated
...
git-svn-id: trunk@8786 -
2007-10-14 09:04:56 +00:00
florian
6d53d3b4cd
* fixed assembling of comisd with rex, there are probably more similiar fixes necessary, must be checked first
...
git-svn-id: trunk@8785 -
2007-10-14 09:04:45 +00:00
florian
f66916fc95
* fixed calculation of fpu resources
...
git-svn-id: trunk@8779 -
2007-10-13 19:39:25 +00:00
florian
342ba323cf
* fixed assembling of cvtsi2ss with rex
...
git-svn-id: trunk@8777 -
2007-10-13 14:53:27 +00:00
florian
0907f3c73b
* regenerated
...
git-svn-id: trunk@8774 -
2007-10-12 16:30:51 +00:00
florian
29084acefd
* moved pre-configured tools to unused shift key combinations
...
git-svn-id: trunk@8773 -
2007-10-12 16:30:36 +00:00
florian
fa0507ec2c
* fixed compilation on arm in extdebug mode
...
git-svn-id: trunk@8771 -
2007-10-12 16:14:49 +00:00
Jonas Maebe
c89ea4412f
* disallow using inline nodes with a non-void resultdef as statements
...
(e.g. length, lo/hi, ord, etc). Not the same as mantis #9918 , but
somewhat related
git-svn-id: trunk@8770 -
2007-10-12 11:54:37 +00:00
Jonas Maebe
0ebc1e920a
* allow modifying lvalues obtained by dereferencing read-only properties,
...
both via regular pointers and via classes (mantis 9498)
git-svn-id: trunk@8755 -
2007-10-09 13:08:36 +00:00
Jonas Maebe
83d162f5fd
* regenerated for darwin/ppc64
...
git-svn-id: trunk@8744 -
2007-10-08 08:33:03 +00:00
florian
36f7d56e91
+ fpcfg.inc target
...
git-svn-id: trunk@8741 -
2007-10-07 17:57:48 +00:00
florian
6b8e54cff9
* fixed compilation
...
git-svn-id: trunk@8740 -
2007-10-07 17:52:14 +00:00
florian
a5429afeb0
* fixed optimizer options for ide configuration creation
...
git-svn-id: trunk@8739 -
2007-10-07 17:31:29 +00:00
florian
6e5ff9b825
* hack around the -intconst hack in pexpr when recording tokens, resolves #9471
...
git-svn-id: trunk@8734 -
2007-10-06 14:33:57 +00:00
peter
c767df348f
* idata must be aligned on 4 bytes to prevent a corrupt
...
idata2 section where the entries are always 20 bytes
git-svn-id: trunk@8725 -
2007-10-02 18:41:47 +00:00
peter
488c06d275
* don't reuse emptyint
...
git-svn-id: trunk@8724 -
2007-10-02 18:41:07 +00:00
Jonas Maebe
e0a45eaf28
* r8717 for ppc64 (fixed compilation after r8715)
...
git-svn-id: trunk@8720 -
2007-10-02 08:31:04 +00:00
micha
89b5825029
* only use ld -T in case of cross-link (-XR), because not all platforms have complete link script yet
...
git-svn-id: trunk@8718 -
2007-10-01 21:10:51 +00:00
Jonas Maebe
d766707278
* fixed compilation after r8715 (+ aasmbase to uses clause)
...
git-svn-id: trunk@8717 -
2007-10-01 20:01:41 +00:00
peter
1e28adac60
* there can be a tai_stab between lock/rep and the next opcode
...
git-svn-id: trunk@8716 -
2007-10-01 19:23:49 +00:00
peter
9f0ca44c94
* new tf_smartlink_library flag
...
* use create_smartlink[_sections|_library] to check what to
do for smartlinking
git-svn-id: trunk@8715 -
2007-10-01 16:55:08 +00:00
micha
c3e587355d
* fix default dynamic linker location for 64 bit targets in linux
...
git-svn-id: trunk@8707 -
2007-09-30 21:20:04 +00:00
Tomas Hajny
cd82fd376f
* workaround for yet another #%$#@#^ EMX LD.EXE bug (link.res path must not be quoted)
...
git-svn-id: trunk@8706 -
2007-09-30 21:11:10 +00:00
peter
9715eceee7
* fixed expectloc setting for x86_64
...
git-svn-id: trunk@8704 -
2007-09-30 21:02:33 +00:00
peter
76b23821e1
* missing recalculation of relative constant
...
* if aligntype=1 then no alignment fillsize guessing is required
git-svn-id: trunk@8701 -
2007-09-30 20:28:41 +00:00
florian
655ac519d4
* fixed compilation for x86-64
...
git-svn-id: trunk@8698 -
2007-09-30 15:30:00 +00:00
micha
0625040eba
+ add -XR switch for target root file system with libs (also used for C lib type detection)
...
git-svn-id: trunk@8695 -
2007-09-30 15:00:54 +00:00
florian
f290d5195d
* line ending properties set
...
git-svn-id: trunk@8685 -
2007-09-29 22:28:27 +00:00
florian
0ebbbd5380
* spelling mistakes fixed
...
git-svn-id: trunk@8684 -
2007-09-29 22:26:33 +00:00
Jonas Maebe
3a60a28283
* don't try to add current_procinfo.got to used_in_proc if it's a
...
virtual register
* always add EBX to used_in_proc in case pi_needs_got, because it's
currently always used due to the geteipasebx call
* don't explicitly free the PIC register in the exitcode because
then the assembler optimizer assumes the load restoring it (ebx)
can be safely removed
git-svn-id: trunk@8683 -
2007-09-29 20:24:51 +00:00
Jonas Maebe
0a606b308d
- removed unused nested do_generate_code procedure from read_proc
...
git-svn-id: trunk@8678 -
2007-09-29 10:28:40 +00:00
Jonas Maebe
b9752680a5
* fixed crashes when combining -Cg with -g or -pg due to a missing
...
restore of lr in leaf procedures in that case (Darwin-only)
git-svn-id: trunk@8675 -
2007-09-28 23:27:16 +00:00
Jonas Maebe
993ec01a76
* use the gcc jumptable scheme for all ppc targets instead of only for
...
darwin
git-svn-id: trunk@8674 -
2007-09-28 23:00:58 +00:00
Jonas Maebe
5a0a6d0d9e
* fixed and enabled smartlinking on Darwin by adding more .reference
...
statements (some to work around linker bugs, most because they were
really missing)
git-svn-id: trunk@8673 -
2007-09-28 22:48:41 +00:00
Vincent Snijders
bc7e54c3f0
* search preprocessor binary and add it as command line parameter for windres, so that the cpp doesn't need to be on the path
...
git-svn-id: trunk@8670 -
2007-09-28 19:53:19 +00:00
Jonas Maebe
c84744b27f
* fixed a_jmp_name() for darwin/i386 (go via a stub)
...
* fixed g_external_wrapper for darwin/i386 (both with and without pic,
by using a_jmp_name(), because the darwin jump stubs can always
be called directly)
git-svn-id: trunk@8669 -
2007-09-28 14:12:46 +00:00
Jonas Maebe
559bb6226e
* don't try to translate the got register if it's NR_NO (fixes
...
regression of webtbs/tw3402 on linux/ppc64 after r8651)
git-svn-id: trunk@8668 -
2007-09-28 11:15:16 +00:00
peter
b5fb7120b8
* fixed length calculation of leb128 constants
...
git-svn-id: trunk@8666 -
2007-09-27 22:40:38 +00:00
peter
c19217f846
* only for jump instructions we need to look at the relative
...
offset of an symbol
git-svn-id: trunk@8664 -
2007-09-27 20:10:30 +00:00
Jonas Maebe
e81d4b737f
* give a build-time error when trying to cross-compile the compiler from
...
non-i386 to i386 because that will result in internalerrors later anyway
git-svn-id: trunk@8662 -
2007-09-27 13:22:51 +00:00
Jonas Maebe
d7c4fdbed5
* added maxfpuregs constant to fix compilation after r8655
...
git-svn-id: trunk@8658 -
2007-09-26 22:00:29 +00:00
Jonas Maebe
3266f4e483
+ Compiler support for pic on darwin/i386. The i386 rtl still needs
...
to be made pic-safe (mainly accesses to the global default8087cw)
* At the same time also made the non-pic code abi-compliant (access
external data via indirect symbol pointers etc)
Darwin/i386 also puts the got into a virtual register (like
Darwin/ppc), a.o. because the register allocator fails to colour
a routine in aasmcpu.pas if we take away ebx from it.
git-svn-id: trunk@8657 -
2007-09-26 21:42:27 +00:00
peter
4492ee39c5
* remove firstpasscount
...
git-svn-id: trunk@8656 -
2007-09-26 21:13:32 +00:00
peter
6b8aed593f
* remove registers{int/mmx/fpu} from firstpass
...
* small cleanups of unused variables in firstpass
* node_resources_fpu() created to get an approximation of the
required fpu registers
* for the moment use node_complexity in the CG until the
node_resource_int() is created
git-svn-id: trunk@8655 -
2007-09-26 21:12:01 +00:00
Jonas Maebe
7e5e13223e
* also count references to relsymbols
...
git-svn-id: trunk@8654 -
2007-09-26 20:31:41 +00:00
Jonas Maebe
b103605bc3
* added comment clarifying why g_indirect_sym_load doesn't have to
...
care about PIC
git-svn-id: trunk@8653 -
2007-09-26 18:39:14 +00:00
Jonas Maebe
9750e49d5a
* fixed x86 compilation after r8651
...
git-svn-id: trunk@8652 -
2007-09-26 17:25:38 +00:00
Jonas Maebe
335bc9fd46
+ PIC support for darwin/ppc32 (-Cg works now, no regressions in test
...
suite compiled with -Cg compared to without -Cg)
+ support for using a virtual register as PIC/got base register
* moved got loading code from ncgutil to cgobj/cgcpu (can't test whether
it didn't break anything under linux/i386, because "make cycle OPT=-Cg"
was already broken due to the *prt*.as -> si_*.pp changes)
git-svn-id: trunk@8651 -
2007-09-26 16:41:32 +00:00
Jonas Maebe
70c2414daa
* split off sec_rodata_norel from sec_rodata, and only put constant data
...
without relocations in sec_rodata_norel. It should be possible to make
this new section read-only on all platforms, although currently it
is only done for darwin, and for non-pic code written using the
-Aas assembler writer.
Most platforms also have a special section for "constant but with
relocations" data, but such a section is currently only used for
Darwin (others still use plain .data sections for that, like they
did before)
git-svn-id: trunk@8650 -
2007-09-26 15:49:01 +00:00
Jonas Maebe
2de2b6e17f
* changed darwin/ppc32 jumptable code to be the same as the darwin/ppc64
...
code, because that's also what gcc does in all cases and it's pic-safe
git-svn-id: trunk@8643 -
2007-09-25 17:56:23 +00:00
Tomas Hajny
e4fe4e740c
* usedircache reenabled
...
git-svn-id: trunk@8629 -
2007-09-24 05:58:10 +00:00
Jonas Maebe
0cbcf95ff2
* fixed compilation on non-x86 after r8617
...
git-svn-id: trunk@8628 -
2007-09-23 21:21:17 +00:00
Jonas Maebe
2bb0dced62
* optimized code for jumptables (same as for ppc now)
...
* put jump tables in const section for darwin/i386
git-svn-id: trunk@8627 -
2007-09-23 21:15:59 +00:00
Jonas Maebe
83624822c3
* moved and changed format of N_OSO stab to be the same as under gcc
...
* no longer generate the DEBUGSTART/INFO/END/TABLE for Darwin as it
is not needed there and those symbols sometimes confuse the linker
git-svn-id: trunk@8626 -
2007-09-23 21:00:30 +00:00
florian
4cd15058df
* take care of the used fpu instruction set when saving/restoring function results on x86
...
git-svn-id: trunk@8617 -
2007-09-23 14:23:31 +00:00
Jonas Maebe
3f81a4ed65
* make code page name parsing case insensitive (mantis #8930 )
...
git-svn-id: trunk@8610 -
2007-09-22 20:54:49 +00:00
Jonas Maebe
b79e4ff3f0
* fixed typo that broke non-i386 compilation after r8603
...
git-svn-id: trunk@8609 -
2007-09-22 20:46:45 +00:00
Jonas Maebe
ecd2445602
+ segment register support in g_concatcopy (should fix #9667 , but I
...
can't test since I don't have Dos/Windows -- at least the changes
don't break Linux/i386)
git-svn-id: trunk@8608 -
2007-09-22 20:10:56 +00:00
florian
4d57395a12
* indoniesan language update by Zaenal Mutaqin
...
git-svn-id: trunk@8606 -
2007-09-22 19:43:48 +00:00
Jonas Maebe
56f8424af6
* no longer remove AsmBlockStart and AsmBlockEnd markers from
...
assembler blocks in procedures marked as inline. I have no idea
why that was done, but it was the case already since a long time
and caused a compiler crash when compiling tests/test/opt/tretopt1
(because it caused the assembler optimizer to process such
assembler blocks, while their operand order is not guaranteed to
be the AT&T one as expected by the optimizers)
git-svn-id: trunk@8604 -
2007-09-22 19:01:44 +00:00
Jonas Maebe
93aad97c22
* Also take into account the node complexity of parameters to determine
...
the order in which they are evaluated (except for LOC_REFERENCE
parameters on i386, because the code generator expects them in their
original order). This saves quite a lot of spilling and uses of
non-volatile registers when the parameters themselves also contain
calls
git-svn-id: trunk@8603 -
2007-09-22 17:22:17 +00:00
Jonas Maebe
b4b715f213
* make sure tai_align.calculatefillbuf no longer destroys the fillsize
...
field, because it can still be read afterwards
git-svn-id: trunk@8602 -
2007-09-22 13:01:30 +00:00
Jonas Maebe
1e5fee5c6f
+ callparan support in node_complexity()
...
git-svn-id: trunk@8601 -
2007-09-22 10:02:36 +00:00
tom_at_work
c6d42528a2
* linker script: keep got and toc sections together; allows use of -Cg (PIC) in large programs (e.g. compiler) on powerpc64/linux
...
git-svn-id: trunk@8591 -
2007-09-21 00:05:51 +00:00
florian
8db40851c0
* fixed some crashes
...
git-svn-id: trunk@8588 -
2007-09-20 22:28:54 +00:00
peter
4d48f2c6ff
* move systems_darwin constant to correct location
...
git-svn-id: trunk@8580 -
2007-09-20 21:08:08 +00:00
tom_at_work
37695af02b
* added missing assignment check when searching for a symbol in a class, fixing bug #9673
...
* test program for above
git-svn-id: trunk@8579 -
2007-09-20 20:35:35 +00:00
peter
4525df9ea0
* nf_is_funcret node flag added
...
* remove ti_is_funcret, use new node flag instead
* check for funcret node in doreplace instead of funcretsym
git-svn-id: trunk@8578 -
2007-09-20 20:24:30 +00:00
peter
eb7aedc285
* fixed overflow
...
git-svn-id: trunk@8577 -
2007-09-20 20:23:26 +00:00
Jonas Maebe
2146ad614c
* fixed toperator5 after r8558. The inlining logic did not take into
...
account that an unmodified value parameter's address could also be
passed as the address of the complex return value (and thus be modified
indirectly after all)
git-svn-id: trunk@8570 -
2007-09-20 18:27:59 +00:00
peter
2652a0c416
* added get_local_or_para_sym to search in parast and localst
...
for self and vmt. The new function uses the owner of procdef
instead of the parsing symtablestack used by searchsym
git-svn-id: trunk@8568 -
2007-09-19 22:37:49 +00:00
tom_at_work
73b88f4d46
* constantified hardcoded minimum stackframe size required by the (powerpc64/linux) ABI
...
git-svn-id: trunk@8567 -
2007-09-19 20:55:47 +00:00
tom_at_work
b0bb3f94a7
* improve powerpc64/linux stub for external procedures in units: also consider GOT change in call to this external procedure
...
* refactored above mentioned stub code generation, allowing the CG to define a cpu specific method for this task by overriding new g_external_wrapper() method
git-svn-id: trunk@8566 -
2007-09-19 20:41:39 +00:00
Jonas Maebe
9049f845f4
* avoid writing the stabs for a child class before those of a parent
...
class in case the parent class has a field with as type the (forward
defined) child class, because this crashes gdb
+ (interactive) test for this
git-svn-id: trunk@8565 -
2007-09-19 16:37:49 +00:00