Commit Graph

727 Commits

Author SHA1 Message Date
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
5f169f97ff * fixed SSE2 substraction when both operands are on the 80x87 fpu stack
git-svn-id: trunk@6959 -
2007-03-23 00:21:46 +00:00
Tomas Hajny
30b78920cd * OS/2 compilation fixes (not completely finished yet)
git-svn-id: trunk@6937 -
2007-03-20 00:49:20 +00:00
florian
d55dbf92d3 * fixed assembling of cvt(t)ss2si
git-svn-id: trunk@6918 -
2007-03-18 17:35:22 +00:00
florian
4fc85cb084 * new test
* fix compilation on i386

git-svn-id: trunk@6861 -
2007-03-14 21:09:05 +00:00
florian
bae83ee777 * set expectloc correctly on x86-64
* decide properly if we inline trunc or not on x86-64

git-svn-id: trunk@6860 -
2007-03-14 21:05:15 +00:00
florian
f4840620f0 * location.size of trunc/round must be OS_S64
* fixed assembling of cvt*2si
+ optimized trunc/round for x86_64/sse
* only floats need no type cast for trunc/round

git-svn-id: trunk@6859 -
2007-03-14 20:56:14 +00:00
pierre
d1d6413443 * use S_IQ opsize for A_FISTP instruction
git-svn-id: trunk@6848 -
2007-03-14 17:09:42 +00:00
florian
bcb1cf0d28 * make no use of int registers in trunc to reduce register pressure
git-svn-id: trunk@6844 -
2007-03-14 10:23:52 +00:00
pierre
f07349a774 * force S_IQ size for movq instruction, needed for nasm
git-svn-id: trunk@6835 -
2007-03-13 23:17:09 +00:00
florian
c4f65df9f9 * fixed expectloc setting
git-svn-id: trunk@6833 -
2007-03-13 22:45:41 +00:00
florian
8aa259401c * fixed x86-64
git-svn-id: trunk@6828 -
2007-03-13 21:12:40 +00:00
florian
1cd41b68f7 * compiler handled round/trunc for x86
git-svn-id: trunk@6827 -
2007-03-13 20:23:24 +00:00
florian
e6e1a3a09b * fixed assembling of sse instructions on x86-64 with regs > xmm7
git-svn-id: trunk@6714 -
2007-03-04 19:16:20 +00:00
florian
9a0f769b2f * cleaned up set conversion
* fixed conversion of var sets

git-svn-id: trunk@6644 -
2007-02-25 16:29:39 +00:00
florian
05e0a804cc * fixes cardinal in reg -> real on x86-64, resolves #8225
git-svn-id: trunk@6588 -
2007-02-21 16:53:57 +00:00
daniel
9256c180de * Fix register allocation bug that happens when a coalesced
move is spilled in its entirely.

git-svn-id: trunk@6408 -
2007-02-10 22:47:13 +00:00
florian
08f48f5fc9 * completed jrcxz support
git-svn-id: trunk@6401 -
2007-02-10 21:14:05 +00:00
florian
a19ed91cc3 * fix for jcxz, jecxz and jrcxz on 64 bit platforms
git-svn-id: trunk@6400 -
2007-02-10 21:05:27 +00:00
Jonas Maebe
9813a8708c * fixed encoding of jcxz
git-svn-id: trunk@6398 -
2007-02-10 20:38:38 +00:00
Jonas Maebe
1863fb4c55 * make more use of location_force_register in in-code, should fix
cycle on x86-64

git-svn-id: trunk@6376 -
2007-02-08 14:14:32 +00:00
Jonas Maebe
21cef2cdb1 * r6372 for x86(-64)
git-svn-id: trunk@6373 -
2007-02-07 23:10:54 +00:00
Jonas Maebe
f38d29cfab * optimized previous patch for "byte in set" (Thorsten Engler)
* fixed storing/loading of setdefs to/from ppu + test (Thorsten Engler)
  * fixed ppudump for new setdef format in ppus

git-svn-id: trunk@6363 -
2007-02-07 20:22:29 +00:00
Jonas Maebe
fc3852e59a * in non-TP modes, 'ord_larger_than_256 in set' now always returns
false instead of triggering a range error (mantis #8258,
    based on patch provided by Thorsten Engler)

git-svn-id: trunk@6357 -
2007-02-07 18:57:19 +00:00
Jonas Maebe
1a32e4fdf5 * fixed pushing of words in intel assembler (indirectly related to
wrong bug report 7808)

git-svn-id: trunk@6274 -
2007-01-30 21:52:11 +00:00
Jonas Maebe
cc67ed17b5 * fixed uninitialised variable (mantis 8198, already tested by
webtbs/tw3931a.pp)

git-svn-id: trunk@6183 -
2007-01-25 11:43:15 +00:00
Jonas Maebe
cdb67cfc8b * fixed bug with set comparisons after r6172
git-svn-id: trunk@6181 -
2007-01-24 22:28:25 +00:00
florian
2579cd139f + support for sets with size 1 and 2
git-svn-id: trunk@6172 -
2007-01-24 20:06:56 +00:00
Jonas Maebe
c866400823 + support for VMTOFFSET in assembler readers to get VMT offset of virtual
methods (mantis #8153)

git-svn-id: trunk@6168 -
2007-01-24 18:26:23 +00:00
Jonas Maebe
c1df4454fe * cmpxchg8b doesn't have a size suffix
git-svn-id: trunk@6164 -
2007-01-24 15:15:04 +00:00
Jonas Maebe
11528c9da6 * better fix for tw8171 (now also works for with-statements)
git-svn-id: trunk@6158 -
2007-01-24 09:55:45 +00:00
Jonas Maebe
ed13c7f60e + support for [recordfield.field] in assembler blocks in methods in
intel assembler (mantis 8171)

git-svn-id: trunk@6150 -
2007-01-23 17:34:11 +00:00
Jonas Maebe
302a2a3ec2 * fixed calling qualified methods in assembler + tests for ppc/ppc64/
i386/x86_64

git-svn-id: trunk@6112 -
2007-01-21 22:16:42 +00:00
florian
2da51bce72 + cmpxchg16b
git-svn-id: trunk@6095 -
2007-01-21 11:04:19 +00:00
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
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
florian
6ef3a158e6 * fixed code generation for <word>+<word> saturated
git-svn-id: trunk@3969 -
2006-06-26 19:43:35 +00:00
peter
3167d18e6b * fix modrm for r13, it has the same limitations as rbp
git-svn-id: trunk@3944 -
2006-06-25 17:21:16 +00:00
peter
55053a586b * fix comisd
git-svn-id: trunk@3927 -
2006-06-23 21:41:19 +00:00
peter
2f147715f4 * more rex fixes
git-svn-id: trunk@3917 -
2006-06-21 19:51:09 +00:00
peter
b672df519a * flexible position of REX, required for SSE2 commands
git-svn-id: trunk@3906 -
2006-06-20 22:38:30 +00:00
peter
56e56d0bd6 * simplified sse conversion code
git-svn-id: trunk@3905 -
2006-06-20 22:29:31 +00:00
peter
41c762a08d * remove extdebug around rex checking
* move optional rex writing to routine and add call also for code 15

git-svn-id: trunk@3903 -
2006-06-20 18:59:27 +00:00
florian
6ed96fd8ad * fixed compilation
git-svn-id: trunk@3887 -
2006-06-17 21:33:08 +00:00
florian
6ffe481799 * fixed sse addition if operands were swapped and in float registers
git-svn-id: trunk@3885 -
2006-06-17 19:43:15 +00:00
yury
550626ef34 - Removed need of assembler startup files for wince. Now compiler directly creates .pdata section needed for arm-wince exception handling.
git-svn-id: trunk@3764 -
2006-06-02 08:36:25 +00:00
florian
307315cef6 * movq is also a pure move
git-svn-id: trunk@3588 -
2006-05-19 23:52:10 +00:00
florian
0378f8c162 + more reg/reg reg/mem only instructions
git-svn-id: trunk@3587 -
2006-05-19 23:51:13 +00:00
daniel
3048a98a6f * Fix and activate internal backtrace routines
git-svn-id: trunk@3524 -
2006-05-14 13:04:03 +00:00
florian
ac4bde88ac * fix 3 operand instructions with third operand being a constant
git-svn-id: trunk@3502 -
2006-05-13 19:51:32 +00:00
florian
23e67ee289 + intel assembler reader for x86-64
git-svn-id: trunk@3411 -
2006-05-01 19:56:00 +00:00
peter
c861491323 * fix typecast
git-svn-id: trunk@3376 -
2006-04-29 22:43:36 +00:00
florian
98d428ff30 * fixed coding style
git-svn-id: trunk@3338 -
2006-04-26 18:13:14 +00:00
peter
22ada6da0d * initialize output of process_ea
git-svn-id: trunk@3323 -
2006-04-23 19:19:49 +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
1e52f348c0 * fixed load_fpu_location for xmm locations
git-svn-id: trunk@3248 -
2006-04-17 16:03:55 +00:00
florian
f702b481f0 * fixed assembling of (%rbp)
git-svn-id: trunk@3239 -
2006-04-17 07:58:37 +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
florian
a8c2419d8a * fixed left_and_right_must_be_fpureg
git-svn-id: trunk@3129 -
2006-04-02 20:36:20 +00:00
florian
1c9da313d9 * 64 bit movnti
git-svn-id: trunk@3091 -
2006-03-30 18:12:33 +00:00
peter
583668896a * rex is x86_64 only
git-svn-id: trunk@3078 -
2006-03-30 06:21:38 +00:00
florian
8ba4fcaad9 * fixed handling of code 214
git-svn-id: trunk@3075 -
2006-03-29 20:24:36 +00:00
florian
b215196734 * fixed cto
git-svn-id: trunk@3074 -
2006-03-29 18:25:48 +00:00
florian
2cfd698273 * sib is required for r12 based addressing too
git-svn-id: trunk@3069 -
2006-03-28 21:15:00 +00:00
florian
7a34d58a15 * encode new 8 bit registers correctly
git-svn-id: trunk@3064 -
2006-03-27 20:41:28 +00:00
florian
e1147755df * fixed cmp
* correct sign extension for 8 byte constants

git-svn-id: trunk@3063 -
2006-03-27 20:24:57 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
florian
8a71767125 * movsql fixed in x86_64 assembler writer
git-svn-id: trunk@3048 -
2006-03-26 20:48:05 +00:00
florian
73e22f1919 * one byte inc/dec aren't allowed for x86_64
git-svn-id: trunk@3047 -
2006-03-26 20:27:02 +00:00
peter
870be04a3f * use dwarf_reg()
git-svn-id: trunk@3046 -
2006-03-26 20:15:32 +00:00
florian
56dc874476 * rsp based addressing fixed
git-svn-id: trunk@3045 -
2006-03-26 20:14:17 +00:00
florian
87da67129c * rtl compilation with x86_64 binary writer fixed
git-svn-id: trunk@3042 -
2006-03-26 18:32:15 +00:00
florian
5d243f665a * fixed <instr> reg,reg with regs>=r8
* fixed section naming
* fixed relocations

git-svn-id: trunk@3041 -
2006-03-26 17:54:02 +00:00
florian
42fab68bc8 * fixed disp32 and rip relative addressing
git-svn-id: trunk@3039 -
2006-03-26 13:38:21 +00:00
florian
4c9a08b12b * more x86_64 assembler support, rtl compilation works, executables don't work yet
git-svn-id: trunk@3038 -
2006-03-26 09:38:05 +00:00
florian
5519158dff + no rex.w prefix support
git-svn-id: trunk@3037 -
2006-03-25 19:45:09 +00:00
florian
ec768f88ae + improved x86-64 assembler
git-svn-id: trunk@2983 -
2006-03-19 22:24:01 +00:00
peter
37c81492ad Merged revisions 2827,2831,2837,2932-2980 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r2827 (peter)
  * smartlinking of resourcestrings


r2831 (peter)
  * process_ea 64bit fixes


r2837 (peter)
  * linker script

git-svn-id: trunk@2981 -
2006-03-19 22:12:52 +00:00
Jonas Maebe
6ad5dff9e8 * fixed loading of -0.0
git-svn-id: trunk@2976 -
2006-03-19 20:29:15 +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
peter
eb725d4e44 Merged revisions 2908,2911,2913-2917 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2908 | peter | 2006-03-13 13:35:48 +0100 (Mon, 13 Mar 2006) | 2 lines

  * merge trunk upto r2907

........
r2911 | peter | 2006-03-13 18:08:00 +0100 (Mon, 13 Mar 2006) | 2 lines

  * rename values to make room for operand size codes

........
........
........
r2915 | peter | 2006-03-14 13:51:35 +0100 (Tue, 14 Mar 2006) | 2 lines

  * check aktcputype

........
r2916 | peter | 2006-03-14 15:06:32 +0100 (Tue, 14 Mar 2006) | 3 lines

  * merge 300 opcodes
  * more 64bit versions of opcodes

........
r2917 | peter | 2006-03-14 17:34:03 +0100 (Tue, 14 Mar 2006) | 3 lines

  * x86_64 tables
  * convert movq with normal registers to mov

........

git-svn-id: trunk@2931 -
2006-03-16 08:09:28 +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
d8dc5679e3 * aktcputype and aktoptimizecputype was missing in the previous optimization commits
git-svn-id: trunk@2907 -
2006-03-13 12:29:56 +00:00
peter
94d9a89774 * only set OT_SHORT if the source and target are in the same objsection
git-svn-id: trunk@2905 -
2006-03-13 12:28:22 +00:00
peter
17bc033747 Merged revisions 2791-2793,2798-2800,2806-2825,2829-2830,2833,2839,2898 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2791 | peter | 2006-03-06 14:57:20 +0100 (Mon, 06 Mar 2006) | 3 lines

  * disable internal linker if -s is used
  * enable section smartlink by default for internal linker

........
r2792 | peter | 2006-03-06 14:58:23 +0100 (Mon, 06 Mar 2006) | 2 lines

  * support long sectionnames

........
r2793 | peter | 2006-03-06 15:04:12 +0100 (Mon, 06 Mar 2006) | 2 lines

  * register symbols in section also when reading .o files

........
r2798 | peter | 2006-03-07 10:08:07 +0100 (Tue, 07 Mar 2006) | 2 lines

  * symbolrefs need to be loaded from relocations when loading a .o

........
r2799 | peter | 2006-03-07 16:17:52 +0100 (Tue, 07 Mar 2006) | 3 lines

  * remove unreferenced sections
  * set stacksize in peopthaeder

........
r2800 | peter | 2006-03-07 17:02:46 +0100 (Tue, 07 Mar 2006) | 2 lines

  * objsection.fullname added

........
........
r2807 | peter | 2006-03-08 08:18:04 +0100 (Wed, 08 Mar 2006) | 2 lines

  * powerpc64 fixes

........
r2808 | peter | 2006-03-08 08:35:53 +0100 (Wed, 08 Mar 2006) | 2 lines

  * register x86_64_pecoff

........
r2809 | peter | 2006-03-08 11:26:38 +0100 (Wed, 08 Mar 2006) | 2 lines

  * optimize and cleanup matches()

........
r2810 | peter | 2006-03-08 12:25:28 +0100 (Wed, 08 Mar 2006) | 2 lines

  * small tweak to readdata to copy values direct without calling move()

........
r2811 | peter | 2006-03-08 15:55:21 +0100 (Wed, 08 Mar 2006) | 2 lines

  * compile fix

........
........
........
........
........
........
r2817 | peter | 2006-03-09 14:20:52 +0100 (Thu, 09 Mar 2006) | 2 lines

  * more readable with long secnames

........
........
........
........
........
........
........
........
r2825 | peter | 2006-03-10 09:52:05 +0100 (Fri, 10 Mar 2006) | 2 lines

  * don't initialize/finalize external variables

........
r2829 | peter | 2006-03-10 10:58:08 +0100 (Fri, 10 Mar 2006) | 2 lines

  * merge 64bit assembler

........
r2830 | peter | 2006-03-10 12:25:08 +0100 (Fri, 10 Mar 2006) | 2 lines

  * TElfAssembler rename

........
r2833 | peter | 2006-03-10 15:22:27 +0100 (Fri, 10 Mar 2006) | 3 lines

  * support & prefix to force identifier parsing, used to access fields that
    have the names of a register

........
r2839 | peter | 2006-03-10 19:37:11 +0100 (Fri, 10 Mar 2006) | 2 lines

  * merge stabs section flags

........
r2898 | peter | 2006-03-12 23:18:18 +0100 (Sun, 12 Mar 2006) | 2 lines

  * reorder instructions for better first match

........

git-svn-id: trunk@2902 -
2006-03-13 09:29:57 +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
florian
5ece7cbc2f * first part of x86-64 assembler
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +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
ba6f1e4990 * factered WriteInstruction out of TGNUAssembler into its own class
* put Apple-specific GNU assembler stuff in its own class
  + darwin/x86 support to the assembler writer

git-svn-id: trunk@2818 -
2006-03-09 14:59:04 +00:00
Jonas Maebe
ab5f5ca15e * fixed ppc compilation
git-svn-id: trunk@2778 -
2006-03-05 22:06:44 +00:00
peter
785550d7e3 Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines

  * add compiler dir

........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines

  * enabled more code

........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines

  * pe stub and headers

........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines

  * section options cleanup

........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines

  * fixed typecasts

........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines

  * simple linking works

........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines

  * internal linker script

........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines

  * make elf working again

........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines

  * disable dwarf for smartlinking with .a
  * fix section start in new .a file

........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines

  * stab section fixes

........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines

  * basic work to merge stabs sections

........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload tmodules before linking

........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines

  * fixed stabs linking

........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines

  * show code and data size

........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload .stabs from objdata after it is merged

........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines

  * memsize/datasize cleanup
  * check for exports/resources when adding module to linker

........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines

  * new TObjSymbol splitted from TAsmSymbol

........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines

  * coff fixes after recent objsymbol changes

........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines

  * fixed coff writer

........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines

  * fix read-only opening

........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines

  * Read edata from DLLs, basic work

........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines

  * deletedef added
  * don't remove defs from index when we are already clearing everything

........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines

  * moved TObj classes to ogbase
  * ObjSection.SymbolRefs and SymbolDefines list
  * DLL importing

........

git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
florian
de3ae0edd2 + some new instructions added (VT, Geode etc), will regenerate later
git-svn-id: trunk@2680 -
2006-02-25 17:22:43 +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
b06643a1eb * tai_const refactored
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
daniel
6b83af08ed * Add --64 or --32 to as call to allow i386 make cycle using -Aas on
x64_64 systems.

git-svn-id: trunk@2320 -
2006-01-22 11:06:10 +00:00
florian
aa176601fb + added more dwarf sections
git-svn-id: trunk@2318 -
2006-01-21 21:22:47 +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
tom_at_work
c887507adf * generic compiler patches for ppc64/linux PIC code
git-svn-id: trunk@2222 -
2006-01-08 13:27:31 +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
florian
f7d2c47f73 + no stackframe is generated for i386 if possible
git-svn-id: trunk@2162 -
2006-01-04 19:19:06 +00:00
florian
61e3b70cfa * cleaned up segmented thread variables
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
bf5907dcdc * more @GOT parsing
git-svn-id: trunk@2125 -
2006-01-02 18:30:18 +00:00
florian
56616ea3ad + parsing of @GOT on i386
git-svn-id: trunk@2117 -
2006-01-02 15:37:18 +00:00
florian
fb4557d71e * first implementation of pic for i386
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
florian
d7a5ca107b * fixed m68k compilation while sitting bored in the train
git-svn-id: trunk@1823 -
2005-11-25 23:08:46 +00:00
florian
f9b05b2cdf * fixed rtl package building
git-svn-id: trunk@1763 -
2005-11-15 22:39:32 +00:00
florian
ef2966e2a6 + more make_simple_ref added
git-svn-id: trunk@1761 -
2005-11-15 20:03:30 +00:00
florian
f8e6df62b6 + added missing make_simple_ref
git-svn-id: trunk@1760 -
2005-11-15 19:43:37 +00:00
florian
99be25604b * fixed address calculation when generating pic
git-svn-id: trunk@1759 -
2005-11-15 19:25:42 +00:00
florian
72d7597edc + implementation of lazy binding for linux
git-svn-id: trunk@1750 -
2005-11-14 22:28:12 +00:00
florian
2585309c04 * of course, we can't omit pic generation for local symbols
git-svn-id: trunk@1743 -
2005-11-13 21:36:38 +00:00
florian
ff6af1804b * fixed loading of pic'ed symbols with offset
* symbols declared AB_COMMON or AB_LOCAL need no pic

git-svn-id: trunk@1739 -
2005-11-13 21:05:42 +00:00
florian
bc7fab1aeb + plt support for x86_64
git-svn-id: trunk@1578 -
2005-10-23 14:47:09 +00:00
florian
1b97e2cffd + added missing make_simple_ref
git-svn-id: trunk@1572 -
2005-10-23 13:28:43 +00:00
florian
19e97e4da2 + use sse for sqrt if possible
* same optimization for sqrt as for sqr

git-svn-id: trunk@1266 -
2005-10-03 12:47:05 +00:00
florian
6371333361 + sqr uses sse on x86 if possible
* the result type of sqr is equal to the argument in case of usual floats

git-svn-id: trunk@1265 -
2005-10-03 12:31:31 +00:00
peter
ec4d287fd8 * aktoutputformat removed, add new paraXX vars for target
assembler and debuginfo and use these vars to override
    the defaults for the target after the parameters are read
  * remove not-maintained and tested gdb code

git-svn-id: trunk@1201 -
2005-09-25 21:17:37 +00:00
peter
82faa95118 * lineinfo fixed for binary writer
* add tai_directive to replace old tai_direct calls
    in powerpc

git-svn-id: trunk@1139 -
2005-09-19 11:47:30 +00:00
peter
a3ab2053c9 * support multiple asmlabel types, renamed getlabel to
getjumplabel and added type para to getlabel for specific types
  * moved lineinfo generation from assemble and aggas to dbgstabs

git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
peter
fdc4925fcd * basic framework for debuginfo class added
git-svn-id: trunk@1084 -
2005-09-15 08:34:51 +00:00
peter
c3727c29b2 * rename al_code to al_procedures, al_bss/al_data to al_globals
* more work for section smartlinking

git-svn-id: trunk@1083 -
2005-09-15 06:51:12 +00:00
florian
6ad3930a5d * fixed broken powerpc compilation
* fixed imm24 constant matching on the arm

git-svn-id: trunk@1074 -
2005-09-11 16:13:55 +00:00
michael
3392189fb0 + Implemented resources for ELF
git-svn-id: trunk@956 -
2005-08-28 09:35:35 +00:00
peter
05a628447f * put typedconsts in own asmlist to prevent mixing
array and string data
  * added al_rodata
  * renamed tasmlist enum names to include al_ prefix

git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
florian
db68fb68b4 * updated to nasm 0.98.39 and insns.dat Rev. 1.46
git-svn-id: trunk@836 -
2005-08-09 20:15:58 +00:00
florian
a2fd319a20 * nx86cnv.pas must set ctypeconv node properly
* nx86cnv must be used

git-svn-id: trunk@787 -
2005-08-03 20:29:38 +00:00
florian
0e89afa607 * mm register spilling fixed
* no sse instruction can operate on memory

git-svn-id: trunk@762 -
2005-07-27 19:31:31 +00:00
florian
5df84f7222 * cvtxx2yy has now proper modification information
git-svn-id: trunk@757 -
2005-07-26 21:06:02 +00:00
florian
146efddbb7 * unified internal error
git-svn-id: trunk@756 -
2005-07-26 21:02:31 +00:00
daniel
22e89e1a42 * Proof of concept: Support threadvars using segment registers.
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +00:00
daniel
d05f58b604 * Group asmlists into array to be able to add
some of them more comfortably.
  * x86_64 compilation was broken, fixed.
  * Sparc compilation was broken, fixed.

git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
daniel
338d4fbe99 * Fix two issues with internal assembler
git-svn-id: trunk@614 -
2005-07-10 18:10:21 +00:00
daniel
3f03e67e48 * Jcc now also doesn't need operand size
git-svn-id: trunk@612 -
2005-07-10 14:07:27 +00:00
daniel
51e0368aa5 * Improve automatic adding of operand size.
git-svn-id: trunk@611 -
2005-07-10 14:03:35 +00:00
daniel
86da715b86 * Internal assembler refuses instructions with constant operand but
without opsize.
  * Opsize added for int,ret,push by assembler reader if not specified
    by programmer.

git-svn-id: trunk@608 -
2005-07-10 09:55:59 +00:00
daniel
45bcc5b07a * Add support for jmp $0011:$22334455 to Intel asm reader, request from
a user that is writing an operating system.
  * Fix mkx86ins bug to interpret imm16:imm32 as a single operand

git-svn-id: trunk@606 -
2005-07-10 07:42:14 +00:00
florian
dac1050c11 + mmx support revived, fixes bug #4106
git-svn-id: trunk@555 -
2005-07-02 11:53:51 +00:00
florian
aa1650fcdc * case indention fixed
git-svn-id: trunk@417 -
2005-06-15 18:47:58 +00:00
florian
21ae782854 * fixed more xmm stuff
+ some win64 stuff added

git-svn-id: trunk@330 -
2005-06-09 20:50:17 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
florian
83209064f9 * getmmregister should test the mm register allocator for being assigned
git-svn-id: trunk@221 -
2005-06-05 15:32:24 +00:00
florian
c97714de9f * renamed windows related units from win32 to win so it can contain ce and 64 bit stuff
git-svn-id: trunk@213 -
2005-06-05 13:42:35 +00:00
florian
a7446e4a7b * changed operand information for multimedia xor operations
git-svn-id: trunk@204 -
2005-06-05 09:50:38 +00:00
florian
ebcb69478f * fixed a lot of stuff for fpu/mm register variables
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +00:00
florian
b0545a7a04 * first bunch of pic fixes
git-svn-id: trunk@76 -
2005-05-22 19:57:38 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
florian
0811184277 + pic code reading for the assembler readers
* loadaddr generates pic code as well now
2005-04-25 09:51:07 +00:00
florian
0cd81efba7 + storing non-extended floats to memory generates now a fwait to get exceptions at the correct place 2005-03-13 17:15:26 +00:00
peter
4794119dd3 movzx,movsx don't support memory destinations 2005-03-10 00:27:04 +00:00
Jonas Maebe
ec959955bd * fixed generic jumps optimizer and enabled it for ppc (the label table
was not being initialised -> getfinaldestination always failed, which
    caused wrong optimizations in some cases)
  * changed the inverse_cond into a function, because tasmcond is a record
    on ppc
  + added a compare_conditions() function for the same reason
2005-02-26 01:26:59 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
b1c8bfc478 + x86_64 pic draft 2005-02-06 00:05:56 +00:00
florian
3835b9f13b * fixed previous commit 2005-02-05 18:32:17 +00:00
florian
e94fe45846 * fixed dword -> qword/int64 type cast on x86_64 2005-02-05 18:08:48 +00:00
peter
79eac1c0b3 * fix [regpara] in intel assembler 2005-01-31 17:07:50 +00:00
peter
0991cb288d * tf_pic_uses_got added 2005-01-25 18:48:15 +00:00
florian
cf55930118 * fixed loadaddr; I wonder how it ever worked 2005-01-08 16:00:55 +00:00
peter
1da9e24cee * support sizeof()
* fix typecasting a constant like dword(4)
2004-12-22 17:09:55 +00:00
peter
ba3516dff6 * A_IMUL readwrite operand 1 2004-12-19 21:34:09 +00:00
florian
0037f4a199 * fixed operand size calculation for sse operands
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
florian
7b8c44bbce * fixed open arrays when using register variables 2004-11-08 20:23:29 +00:00
peter
33494a7775 * fix possible range error 2004-11-03 10:11:13 +00:00
florian
c94553080b + added profiler call for x86_64 2004-11-02 20:50:54 +00:00
florian
bfce614370 * fixed -<sse register>
* information about simple moves for sse is given to the register allocator
2004-11-02 18:23:16 +00:00
peter
9b00c7832e * support > 32bit accesses for x86_64
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
florian
852ca7e923 + added sse instruction being not be able writing to a memory location 2004-11-01 17:30:17 +00:00
florian
1c569cbd08 * cvt*2* can't write to memory location, fixed 2004-11-01 15:42:47 +00:00
peter
f80f3fc0fa * shortstr compare with empty string fixed
* removed special i386 code
2004-11-01 12:43:28 +00:00
peter
882cc700fb * fixed uninited var in a_load_reg_ref 2004-11-01 10:30:06 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
d19663f3a8 * save standard registers moved to tcgobj 2004-10-25 15:36:47 +00:00
peter
30d25d1d2b * -Or fixes 2004-10-24 20:10:08 +00:00
peter
adb6f59eef * small regvar fixes
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
mazen
ad191865e3 - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:22:23 +00:00
peter
c853d10cc2 * optimized spilling writing when the reg operand can be
replaced by reference
2004-10-10 16:30:26 +00:00
Jonas Maebe
2b030488b2 * regvar fixes from Peter 2004-10-06 19:26:50 +00:00
peter
f5471aef6e * more spilling rewrites 2004-10-05 20:41:01 +00:00
peter
4bdae840a3 * reverted a minor move in the order of tinschange. The order
is required by the optimizer. Added also a remark
2004-10-04 21:11:24 +00:00
peter
f10c319261 * fix x86_64 compile 2004-10-04 20:55:04 +00:00
peter
ee3585f56f * spilling code rewritten for x86. It now used the generic
spilling routines. Special x86 optimization still needs
    to be added.
  * Spilling fixed when both operands needed to be spilled
  * Cleanup of spilling routine, do_spill_readwritten removed
2004-10-04 20:46:22 +00:00
florian
001292bf50 * made sqrt, sqr and abs internal for the sparc 2004-10-03 12:41:30 +00:00
peter
d604b703cb * fix resizing of LOC_CREGISTER 2004-10-01 17:32:16 +00:00
Tomas Hajny
39d6a252e2 * explicit typecast added to avoid range check error 2004-09-30 19:32:19 +00:00
peter
30a4185153 * IE when expecting top_ref 2004-09-27 15:12:47 +00:00
peter
ec04a5a899 * handle 3 operand opcodes the same as 2 operand opcodes, the
third operand can only be a const or register CL, so it doesn't
    affect spilling
  * support shrd/shld that don't allow memory operands
2004-09-27 14:49:45 +00:00
florian
9d29de2b43 * fixed qword -> float conversion for x86 2004-09-26 09:12:50 +00:00
florian
9ebffe215b * ie checking in spilling code improved 2004-09-26 07:15:07 +00:00
peter
65c3ba277c * ungetregister is now only used for cpuregisters, renamed to
ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
florian
9cec4f847e * fixed i386 compilation 2004-08-24 21:23:11 +00:00
Jonas Maebe
1dd5fc2b47 * changed first_sse_imreg to first_mm_imreg 2004-07-09 23:30:13 +00:00
peter
230105093d * only enable dwarf for supported platforms 2004-06-29 21:00:08 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
peter
5358278ca1 tai_regalloc.allocation changed to ratype to notify rgobj of register size changes 2004-05-22 23:34:27 +00:00
florian
39f5874341 * fixed qword -> <real> type cast 2004-05-10 20:57:45 +00:00
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
peter
ffb2785d2b * A_MOVSL renamed to A_MOVSD 2004-04-09 14:36:05 +00:00
peter
406eb57a59 * MOVSL fixed 2004-04-08 16:49:42 +00:00
peter
38373b90d8 * check for top_ref instead of OT_MEMORY in needaddrprefix 2004-03-16 16:19:19 +00:00
michael
2f26f9ebb4 + Fix from peter: fixes crash when inlining assembler code referencing local vars 2004-03-15 08:44:51 +00:00
peter
81f3ef9eca * fixed concatcopy end bytes copy broken by 64bits patch 2004-03-11 19:35:05 +00:00
peter
970d84f86d * mcount for linux fixed
* push/pop edx for mcount
2004-03-10 22:52:03 +00:00
florian
10e765329d * fixed arm compilation
* cleaned up code generation for exported linux procedures
2004-03-06 20:35:19 +00:00
peter
b601863598 * top_none in create_ot, it is used in error situations 2004-03-04 17:25:38 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
florian
fabb9c33ac * top_symbol killed
+ refaddr to treference added
  + refsymbol to treference added
  * top_local stuff moved to an extra record to save memory
  + aint introduced
  * tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
florian
01d16548f4 * fixed exception reason size for 64 bit systems 2004-02-22 18:27:21 +00:00
florian
0c35b6f3c4 * x86_64 uses generic concatcopy_valueopenarray for now 2004-02-22 16:48:09 +00:00
florian
ec8c16f871 * fixed
+ second_cmpfloatsse
2004-02-22 16:30:37 +00:00
florian
00dbe6655d + nx86set added
* some more x86-64 fixes
2004-02-22 12:04:04 +00:00
florian
6a392f766d * OP_SH* code generation fixed 2004-02-21 19:46:37 +00:00
peter
fad88e2c7c * allow mov to smaller sizes 2004-02-20 16:01:49 +00:00
peter
e6929a1a32 * more x86_64 parameter fixes
* tparalocation.lochigh is now used to indicate if registerhigh
    is used and what the type is
2004-02-09 22:14:17 +00:00
peter
302040cc98 * reg_2_opsize replaced with reg_cgsize 2004-02-09 19:23:48 +00:00
Jonas Maebe
71202a141d * taicpu.is_same_reg_move() now gets a regtype parameter so it only
removes moves of that particular register type. This is necessary so
    we don't remove the live_start instruction of a register before it
    has been processed
2004-02-08 23:10:21 +00:00
Jonas Maebe
9495f77117 - removed taicpu.is_reg_move because it's not used anymore
+ support tracking fpu register moves by rgobj for the ppc
2004-02-08 20:15:42 +00:00
daniel
46d241a666 * Take advantage of our new with statement optimization 2004-02-07 23:28:34 +00:00
florian
b780c7852c + improved floating point compares for x86-64 and Pentium2 and above 2004-02-06 16:44:42 +00:00
florian
3cb562e41f * movz*q fixed 2004-02-06 14:37:48 +00:00
peter
221090453c * x86_64 fixes for opsize 2004-02-05 18:28:37 +00:00
florian
465aa5851b * several fixes to compile x86-64 system 2004-02-05 01:24:08 +00:00
peter
8c5b0f7d82 * first try to get cpupara working for x86_64 2004-02-04 22:01:13 +00:00
peter
8012731ede *** empty log message *** 2004-02-04 19:22:27 +00:00
peter
ecfbbeffc3 * renamed xNNbittype to xNNinttype
* renamed registers32 to registersint
  * replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
peter
663fa583d9 * real fix for the short jmp out of range problem. Only forward jumps
needs an offset correction. For backward jumps both the address of
    the symbol and the instruction are already updated so no correction
    is required.
2004-02-03 21:21:23 +00:00
Jonas Maebe
4ba9c9ec67 - removed "mov reg,reg" optimization (those instructions are removed by
the register allocator, and may be necessary to indicate a register
    may not be released before some point)
2004-02-03 19:46:48 +00:00
peter
7ca069476f *** empty log message *** 2004-02-03 16:53:37 +00:00
florian
35b8e93073 * fixed more alignment issues 2004-01-30 13:42:03 +00:00
daniel
97e87aaebc * reginfo now also only allocated during register allocation
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
peter
d42f4af064 * give warning that DWORD is used as size in delphi mode when no
size was specified
2004-01-22 16:29:11 +00:00
florian
c37035a450 * common addnode code for x86-64 and i386 2004-01-20 12:59:36 +00:00