Commit Graph

434 Commits

Author SHA1 Message Date
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
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
5118e35016 * another mayewriterex added, fixes #7261
git-svn-id: trunk@4511 -
2006-08-27 18:49:12 +00:00
Jonas Maebe
6845c1e05a + subsetref support
git-svn-id: trunk@4492 -
2006-08-23 17:59:02 +00:00
florian
9e66674ff9 + first part of qwordbool implementation
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
90cacb4cf5 * changed result type of dwarf_reg from byte to shortint to avoid
warning about comparison which can never be true

git-svn-id: trunk@4183 -
2006-07-14 17:25:16 +00:00
Jonas Maebe
502556bd46 + subsetreg support
git-svn-id: trunk@4059 -
2006-07-02 08:07:10 +00:00
peter
34a58e5287 * fix alignment padding for x86_64
git-svn-id: trunk@4001 -
2006-06-29 20:34:54 +00:00
peter
28720c4173 * remove unneeded check
git-svn-id: trunk@3986 -
2006-06-27 22:29:19 +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