florian
f32831c44a
* fixed assembling of fisttp of sse3 instruction set
...
+ sse3 optimized trunc() using fisttp
+ -Cfsse3 for x86-64
git-svn-id: trunk@8962 -
2007-10-27 20:50:46 +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
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
Jonas Maebe
9750e49d5a
* fixed x86 compilation after r8651
...
git-svn-id: trunk@8652 -
2007-09-26 17:25:38 +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
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
peter
2f044481ae
* release temp when downgrading fpuregister value
...
git-svn-id: trunk@8530 -
2007-09-17 20:52:24 +00:00
daniel
a05d228679
- Remove IE from g_concatcopy again.
...
git-svn-id: trunk@8065 -
2007-07-15 16:15:13 +00:00
daniel
f0633187f4
+ Change constants in g_concatcopy to make the right decisions on x86_64.
...
* Fix move copy in g_concatcopy for x86_64.
git-svn-id: trunk@8058 -
2007-07-14 21:29:57 +00:00
daniel
4f6eb50391
+ Internalerror if g_concatcopy is called with len=0.
...
git-svn-id: trunk@8052 -
2007-07-14 18:56:16 +00:00
florian
c7100799ed
+ forbid usage of $E on targets supporting no fpu emulation
...
- disabled -Cfsoft on i386
git-svn-id: trunk@7625 -
2007-06-10 17:03:26 +00:00
florian
fe69d19f9c
* align stack properly if no stack frame is generated, should resolve #8986
...
git-svn-id: trunk@7611 -
2007-06-09 18:46:35 +00:00
florian
f87e96dfb0
* properly release open array value parameters on x86-64 or if they contain automated types, resolves #8664
...
git-svn-id: trunk@7100 -
2007-04-13 19:20:56 +00:00
Jonas Maebe
abef29c1d5
* fixed x86 vector mmloads and use scalar loads in ncgcnv
...
git-svn-id: trunk@5967 -
2007-01-14 13:36:26 +00:00
Jonas Maebe
fc99b0ad48
* fixed floating point precision conversions for loc_mmregister and
...
between loc_fpuregister and loc_mmregister
git-svn-id: trunk@5942 -
2007-01-13 15:00:00 +00:00
Jonas Maebe
e815b923d5
* a_loadfpu_* gets two size parameters: fromsize and tosize
...
* fixed downsizing the precision of floating point values
* floating point constants are now treated using only the minimal
precision required (e.g. 2.0 is now a single, 1.1 extended etc)
(Delphi compatible)
git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
florian
36a500c38c
* don't coalescate with frame/stack pointer
...
git-svn-id: trunk@5880 -
2007-01-11 10:47:07 +00:00
florian
c238bb15d1
* .init section support
...
git-svn-id: trunk@5835 -
2007-01-07 10:03:52 +00:00
florian
836dbad1b2
* bitpacked stuff fixed for x86-64
...
git-svn-id: trunk@5503 -
2006-11-26 21:57:34 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
florian
fb5e396881
+ experimental -Sv option to support vector arithmetics
...
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +00:00
peter
0bb22a2d17
* don't generate fwait by default anymore
...
* SAVEFPUEXCEPTIONS switch added to enable fwait inserts
git-svn-id: trunk@4733 -
2006-09-26 19:22:45 +00:00
florian
efd24ba7a0
* x86_64 abis ensure that the direction flag is clear at procedure entry
...
git-svn-id: trunk@4689 -
2006-09-23 10:08:47 +00:00
florian
abc957d80d
* fixed stack initialization on Win x64, still not sure if it is necessary
...
git-svn-id: trunk@4617 -
2006-09-12 20:49:18 +00:00
Jonas Maebe
51259b697b
* more mmx/sse register spilling fixes:
...
* operand read/write info for movaps and movapd
* use "movapd reg,reg" instead of "movaps reg,reg" if appropriate
so the spilling code can spill the correct size to memory
* replace movaps/movapd with movss/movsd when spilling to memory
instead of movq
git-svn-id: trunk@4612 -
2006-09-12 11:07:45 +00:00
florian
b3ae0c51a4
* sizes2load handles OS_NO properly if one size is given
...
git-svn-id: trunk@4586 -
2006-09-09 18:12:07 +00:00
florian
55484f9bb7
* shifting can operate on 64 bit values on x86_64
...
git-svn-id: trunk@4561 -
2006-09-07 19:41:02 +00:00
florian
6d0a078441
* do stack page initialization on i386-wince as well
...
git-svn-id: trunk@4521 -
2006-08-31 14:23:29 +00:00
florian
9e66674ff9
+ first part of qwordbool implementation
...
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
a3a74c3fbe
* fixed interface wrappers for darwin in case they end up in
...
a shared library
git-svn-id: trunk@3980 -
2006-06-27 14:32:14 +00:00
daniel
3048a98a6f
* Fix and activate internal backtrace routines
...
git-svn-id: trunk@3524 -
2006-05-14 13:04:03 +00:00
peter
0a50dd1029
* give IE if fpu stack counter becomes < 0
...
git-svn-id: trunk@3294 -
2006-04-20 11:15:54 +00:00
florian
af4d5c898a
+ stack touching for win64
...
git-svn-id: trunk@3252 -
2006-04-17 19:00:53 +00:00
florian
2d3d4a66f6
* keep stack aligned to 16 byte borders on winx64
...
git-svn-id: trunk@3212 -
2006-04-15 16:48:28 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
Vincent Snijders
7dfd96b59c
* fixed another typo
...
git-svn-id: trunk@2927 -
2006-03-15 20:42:14 +00:00
Vincent Snijders
594861974d
* fixed typo
...
git-svn-id: trunk@2926 -
2006-03-15 20:28:02 +00:00
peter
588cccb3ca
* remove some obsolete i386 specific code
...
* use a_optimize_const to remove useless opcodes
git-svn-id: trunk@2910 -
2006-03-13 16:37:08 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
9125d0c189
* also align esp for all procedures/functions declared "assembler",
...
since they may do a call. If you don't want that to happen, use
the nostackframe directive (i386-darwin only)
git-svn-id: trunk@2896 -
2006-03-12 21:20:29 +00:00
Jonas Maebe
435aee2398
* fixed g_copyvaluepara_openarray/g_releasevaluepara_openarray for
...
use_fixed_stack (use generic code)
git-svn-id: trunk@2895 -
2006-03-12 21:04:59 +00:00
Jonas Maebe
e7112c6636
* ignore po_interrupt for i386-darwin since it messes up stack alignment
...
git-svn-id: trunk@2857 -
2006-03-11 14:30:02 +00:00
Jonas Maebe
9de2847865
+ support for passing parameters via pre-allocated stack space on i386
...
(override/adjust cgutils.use_fixed_stack to change conditions where
this is done, currently only activated for darwin-i386)
* make sure the stack is always aligned to 16 bytes on darwin-i386
git-svn-id: trunk@2840 -
2006-03-10 19:59:44 +00:00
Jonas Maebe
d7b4ac73cf
+ darwin/x86 support for a_call_name
...
git-svn-id: trunk@2819 -
2006-03-09 15:02:55 +00:00
Jonas Maebe
d2ba35df7e
* don't destroy edi when allocating the stack frame for win32
...
git-svn-id: trunk@2330 -
2006-01-23 10:54:48 +00:00
florian
f5d790f9b6
* i386 uses dwarf cfi info on linux/win32, so even when omitting the stack frame, trace backs in gdb are correct
...
git-svn-id: trunk@2316 -
2006-01-21 14:30:57 +00:00
florian
a3e3e7e8c5
* avoid esp to be freed
...
git-svn-id: trunk@2203 -
2006-01-07 14:32:09 +00:00
Jonas Maebe
7aa315c71a
* made some Tcpuregisterset parameters const to avoid useless copying
...
git-svn-id: trunk@2176 -
2006-01-05 10:10:25 +00:00