Commit Graph

177 Commits

Author SHA1 Message Date
Jonas Maebe
a8191abd16 * fixed parsing of "rcl/rcr rm,imm" (mantis #9025)
git-svn-id: trunk@8272 -
2007-08-12 13:50:52 +00:00
peter
2e9968d46c * arrays always by addr
git-svn-id: trunk@8232 -
2007-08-06 19:44:25 +00:00
peter
f5d5e377d2 * fix linux x86_64 for records and arrays
git-svn-id: trunk@8224 -
2007-08-05 19:38:21 +00:00
peter
4e6c57b9ee * cleanup x86_64 structures in registers
git-svn-id: trunk@8214 -
2007-08-02 20:46:48 +00:00
florian
be6d2dd0f9 * reverted wrong commit in r8133
git-svn-id: trunk@8135 -
2007-07-22 17:00:51 +00:00
florian
447276c5bb * Jcc reads the flags, this was not in the dat yet, resolves #9278
* disabled 4 ops variant of insertq for now

git-svn-id: trunk@8133 -
2007-07-22 16:40:44 +00:00
daniel
5add416dab * Fix mul opsize
git-svn-id: trunk@8131 -
2007-07-22 11:48:10 +00:00
daniel
5ce54c6a20 + For muln, don't load left operand in register unless necessary.
(mul supports memory operands).

git-svn-id: trunk@8110 -
2007-07-21 09:20:33 +00:00
daniel
4a3870eb12 * Fix bug #9261.
git-svn-id: trunk@8056 -
2007-07-14 20:57:56 +00:00
daniel
f31889df57 * Pass const params by pointer if calling convention<>register. This is
needed for the windows unit as Delphi compatibility requires const
    parameters for some procedures and Delphi assumes parameters > 4 to be
    passed as pointer.

git-svn-id: trunk@7982 -
2007-07-08 17:26:08 +00:00
daniel
44e07cd098 * Fix bug #9141 and pass const params <=16 in by value.
git-svn-id: trunk@7979 -
2007-07-07 21:01:46 +00:00
daniel
e002e6b9f4 * Also execute setfirsttemp on non-Windows platforms. Fixes -O2 cycle on Linux.
git-svn-id: trunk@7848 -
2007-06-29 17:46:27 +00:00
daniel
62b6fcead8 * Fix operator count.
git-svn-id: trunk@7835 -
2007-06-27 20:31:58 +00:00
daniel
56880a75f9 * When adding the start offset of the parameters, process chained
paralocs too.

git-svn-id: trunk@7834 -
2007-06-27 20:28:45 +00:00
yury
3b7e458f02 * Properly set location of float return value if it is passed as var parameter (it is always happens for safecall functions). It fixes bugs #8523 and #8977.
+ test.

git-svn-id: trunk@7728 -
2007-06-18 23:23:46 +00:00
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
florian
0e96eda236 + some sse4 instructions supported, resolves #9046
git-svn-id: trunk@7613 -
2007-06-09 19:45:06 +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
9be265ab02 * fixed x86-64 compilation
git-svn-id: trunk@6940 -
2007-03-21 12:26:06 +00:00
florian
d55dbf92d3 * fixed assembling of cvt(t)ss2si
git-svn-id: trunk@6918 -
2007-03-18 17:35:22 +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
florian
224da99c63 * regenerated
git-svn-id: trunk@6715 -
2007-03-04 19:16:28 +00:00
peter
bf652ab1d2 * fixed att asmmode
git-svn-id: trunk@6672 -
2007-02-27 16:31:40 +00:00
peter
e0729f1be1 * fixed typo
git-svn-id: trunk@6668 -
2007-02-26 17:16:10 +00:00
peter
70e0846275 * Add ATT as asmmode name to be compatible with i386
git-svn-id: trunk@6646 -
2007-02-25 16:47:50 +00:00
florian
2566e38eae * handle shortstrings like arrays and records when returning them from functions
git-svn-id: trunk@6563 -
2007-02-19 18:55:44 +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
florian
77b155ea79 * def.size in [1,2,4,8] goes wrong if def.size>255, fixed, resolves #8232
git-svn-id: trunk@6245 -
2007-01-28 18:06:51 +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
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
florian
36a500c38c * don't coalescate with frame/stack pointer
git-svn-id: trunk@5880 -
2007-01-11 10:47:07 +00:00
florian
98d6014c73 * register saving on win64 fixed
git-svn-id: trunk@5785 -
2007-01-02 14:34:03 +00:00
florian
a95c2220cc * fixed volatile registers for x86_64-win64
git-svn-id: trunk@5781 -
2007-01-01 23:26:21 +00:00
florian
4c2b412613 * x86_64-win64 returns structured types up to 8 bytes in rax
git-svn-id: trunk@5528 -
2006-12-02 15:36:32 +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
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
peter
23596358a7 * fix arraydef copybyvalue check
git-svn-id: trunk@5088 -
2006-10-30 10:27:49 +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
florian
5eef73c1ab * fixed passing of registers on x86-64_linux, should fix #7613
git-svn-id: trunk@4951 -
2006-10-17 20:58:16 +00:00
florian
de0bf34a10 * recreated
git-svn-id: trunk@4908 -
2006-10-14 16:54:21 +00:00
florian
1dd80243e5 * tables recreated
git-svn-id: trunk@4899 -
2006-10-14 11:21:41 +00:00
florian
2a54d957b2 * fixed two small errors
* supported_optimizerswitches now takes generic flags also into account

git-svn-id: trunk@4865 -
2006-10-11 21:14:47 +00:00
florian
a61abb25cb * reorganized optimizer switch sets
git-svn-id: trunk@4862 -
2006-10-11 18:16:10 +00:00
florian
e8d5dc4ab2 * tailrecursion optimization enabled for for sparc, i386, x86-64 and arm
git-svn-id: trunk@4860 -
2006-10-11 16:34:28 +00:00
florian
fb5e396881 + experimental -Sv option to support vector arithmetics
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +00:00
florian
360cbe1de1 * fixed passing of structs on x86_64-linux
git-svn-id: trunk@4688 -
2006-09-23 09:05:21 +00:00
Jonas Maebe
91d9b1f77b * operand read/write info for movaps and movapd (from r4612)
git-svn-id: trunk@4616 -
2006-09-12 15:01:34 +00:00