florian
5e2042cff8
* correct assembling of test rm8,reg8
...
git-svn-id: trunk@5972 -
2007-01-14 18:08:37 +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
db3f8575ae
* fixed library creating on x86_64-linux
...
git-svn-id: trunk@5828 -
2007-01-06 20:27:59 +00:00
florian
c759b114bf
* allow second operand being am imm in intel assembler, fixed #7719
...
git-svn-id: trunk@5823 -
2007-01-05 23:15:25 +00:00
Jonas Maebe
1d96dcc50d
* renamed nf_swaped to nf_swapped
...
git-svn-id: trunk@5818 -
2007-01-05 12:47:22 +00:00
Jonas Maebe
a4a54a105d
* fixed sse float substraction in case of swapped operands
...
git-svn-id: trunk@5817 -
2007-01-05 12:37:14 +00:00
Jonas Maebe
a23fa2e81e
* moved (unfinished) routines related to writing taicpu's to ppu files
...
from x86/aasmcpu to aasmtai and (new) aasmsym, so that when they're
finished they're available for all targets
* added dummy implementation of tai_cpu_abstract.pass1 and pass2 so there
are no more hundreds of warnings on non-x86 about constructing taicpu
instances with abstract methods
git-svn-id: trunk@5787 -
2007-01-02 18:28:05 +00:00
pierre
fc66d46beb
+ added several warnings about use of references
...
involving (%ebp) or (%esp) in assembler code.
Useful to track code that might suffer from regcall
convention.
git-svn-id: trunk@5736 -
2006-12-29 09:37:15 +00:00
Jonas Maebe
05a07a7dd2
* better fix for previous revision
...
* also applied to x86 and m68k
git-svn-id: trunk@5512 -
2006-11-30 20:55:32 +00:00
florian
836dbad1b2
* bitpacked stuff fixed for x86-64
...
git-svn-id: trunk@5503 -
2006-11-26 21:57:34 +00:00
florian
6118c3e477
* fixed assembling of movd with 64 bit registers
...
* fixed passing of floats to c varargs
git-svn-id: trunk@5477 -
2006-11-25 20:32:32 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +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
peter
1684a6fc32
* replaced tdictionary with tfphashlist
...
git-svn-id: trunk@5148 -
2006-11-01 14:26:50 +00:00
peter
05183ac829
* AsmSymbolDict changed to FPHashObjectList
...
git-svn-id: trunk@5139 -
2006-11-01 00:22:13 +00:00
peter
cb246eb781
* Remove dos,strings units, use SysUtils instead
...
* replace split* functions with Extract* functions
* Add Directory caching
git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
daniel
3125ed73cf
* Add one more call to get_alias
...
git-svn-id: trunk@5000 -
2006-10-22 09:18:37 +00:00
daniel
01afee1f73
* Add extra calls to get_alias to properly recognize coalesced
...
registers to be spilled.
git-svn-id: trunk@4997 -
2006-10-21 21:31:08 +00:00
peter
076fb20774
* don't apply typesize of record if a field size is applied
...
git-svn-id: trunk@4971 -
2006-10-18 21:22:00 +00:00
peter
1de2f94b28
* fixed typo in r4848
...
git-svn-id: trunk@4966 -
2006-10-18 20:19:44 +00:00
florian
b22e688ad8
* fixed fstenv instruction dat
...
git-svn-id: trunk@4907 -
2006-10-14 16:53:39 +00:00
florian
66b1932d52
* fixed rex writing for floating point instructions
...
git-svn-id: trunk@4898 -
2006-10-14 11:21:17 +00:00
peter
71665dbc4c
* initial addr_pic support for x86_64 binary writer
...
git-svn-id: trunk@4848 -
2006-10-10 18:36:41 +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
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
micha
d704af7216
fix compilation for {$T+} linux/win
...
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
peter
cc1f9f8a9b
* handle . in a reference like +
...
git-svn-id: trunk@4769 -
2006-10-02 17:39:22 +00:00
peter
5de217f04c
* movzx reference size fallback to byte for delphi mode
...
git-svn-id: trunk@4768 -
2006-10-02 17:33:52 +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
Jonas Maebe
2000c7d3e3
* used "gas" instead of "as" for Solaris (both sparc and x86)
...
and not for linux/sparc
git-svn-id: trunk@4659 -
2006-09-19 13:38:44 +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
Jonas Maebe
cd0c38b9d9
* fixed spilling of mmx registers
...
git-svn-id: trunk@4604 -
2006-09-10 15:59:58 +00:00
Jonas Maebe
e2872c9aea
* fixed more missing subsetreg/subsetref support
...
git-svn-id: trunk@4595 -
2006-09-09 22:10:32 +00:00
Jonas Maebe
b9f32e1828
* use expectloc instead of location.loc in pass1
...
git-svn-id: trunk@4594 -
2006-09-09 22:06:46 +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
Jonas Maebe
1a8c2f405d
* fixed for subsetref/subsetreg
...
git-svn-id: trunk@4578 -
2006-09-09 09:31:14 +00:00
florian
930086df3f
* fixed cvtsi2sd for 64 bit ints
...
git-svn-id: trunk@4575 -
2006-09-08 21:34:12 +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
peter
d79df4c74a
* 64bit support for shrd
...
git-svn-id: trunk@4541 -
2006-09-03 08:56:10 +00:00
florian
e1d1f92672
* don't write rex twice
...
git-svn-id: trunk@4525 -
2006-08-31 21:58:13 +00:00