sergei
07e90aaa24
+ Implemented IEEE 754-compliant checking for unordered results of floating-point compares on x86 targets. Mantis #9362 .
...
git-svn-id: trunk@27581 -
2014-04-14 12:36:11 +00:00
nickysn
4763723c75
+ support compact, large and huge memory models in x86/cpubase.segment_regs_equal()
...
git-svn-id: trunk@27392 -
2014-03-30 19:36:21 +00:00
nickysn
3555b76495
- rm FDISI,FENI,FSAVE,FSTCW,FSTENV and FSTSW from the requires_fwait_on_8087()
...
list, because these instructions already have a built in FWAIT prefix even
when targeting the 287/387+ both with the internal asm writer and with the
NASM back end.
git-svn-id: trunk@26178 -
2013-12-03 23:56:45 +00:00
nickysn
e9a4896565
- rm the 287/387+ FPU instructions from the requires_fwait_on_8087() list
...
git-svn-id: trunk@26176 -
2013-12-03 22:48:52 +00:00
nickysn
12b2f86e99
+ added function requires_fwait_on_8087(), which checks whether a given
...
instruction needs adding a FWAIT prefix on the i8087.
git-svn-id: trunk@26106 -
2013-11-18 23:38:57 +00:00
florian
f132a804d6
+ handle 32 bit references on x86-64 so lea can be used for 32 bit arithmetics
...
git-svn-id: trunk@25909 -
2013-11-01 19:01:39 +00:00
nickysn
58b22adaf1
+ added function cpubase.segment_regs_equal, which checks whether 2 segment regs are equal in the current memory model
...
git-svn-id: trunk@24949 -
2013-06-23 11:27:00 +00:00
nickysn
4840a33b80
* also return true in is_calljmp() for the A_JCXZ instruction on the i8086
...
git-svn-id: trunk@24886 -
2013-06-12 23:42:45 +00:00
nickysn
ecb5a4866d
* refactored the int64 result passing in ax:bx:cx:dx to use 4 paralocs, instead of the GetNextReg hack
...
git-svn-id: trunk@24527 -
2013-05-19 12:50:15 +00:00
nickysn
6b2f59c3e0
+ preparations for returning int64 in ax:bx:cx:dx on i8086
...
git-svn-id: trunk@24498 -
2013-05-14 22:19:17 +00:00
nickysn
e2cd2813ce
+ stop with an internal error if GetNextReg is called with a non-imaginary register
...
git-svn-id: trunk@24493 -
2013-05-13 22:34:13 +00:00
nickysn
107a6f6552
* i8086 versions of i386*.inc and r386*.inc renamed to i8086*.inc and r8086*.inc
...
git-svn-id: branches/i8086@24232 -
2013-04-12 12:06:28 +00:00
nickysn
981f0a5c6c
nested ifdefs converted to series of elseif + some other ifdefs cleaned up
...
git-svn-id: branches/i8086@23740 -
2013-03-09 11:25:25 +00:00
nickysn
eff0894a66
all the extra i8086 units added
...
git-svn-id: branches/i8086@23718 -
2013-03-08 00:04:45 +00:00
nickysn
a4b1a9011b
i8086 specific stuff added to x86/cpubase.pas
...
git-svn-id: branches/i8086@23713 -
2013-03-07 22:49:35 +00:00
Jonas Maebe
68dd05e259
* fixed std_regname() for xmm registers with custom sizes
...
* fixed findreg_by_number() for xmm registers with R_SUBNONE
(from the assembler reader)
git-svn-id: trunk@23151 -
2012-12-15 22:47:12 +00:00
masta
e327b4581c
Use TRegNameTable instead of array[tregisterindex] of string[10]
...
TRegNameTable is defined in compiler/rgbase.pas and is an array of
strings, limited to the maximum length of the used register names.
r22792 added a long register name but did not scale the string-size
enough, resulting in the compiler built breaking for arm.
git-svn-id: trunk@22817 -
2012-10-22 10:23:21 +00:00
Jeppe Johansen
0087661fb5
Added FPv4_d16 FPU instructions, and a few extra registers
...
git-svn-id: branches/laksen/arm-embedded@22596 -
2012-10-08 20:04:14 +00:00
florian
283ff05127
* merged avx support in inline assembler developed by Torsten Grundke
...
git-svn-id: trunk@22568 -
2012-10-06 19:47:18 +00:00
florian
d93cee995b
* fix register method pointer for ppc64 and x86_64-linux
...
git-svn-id: trunk@22351 -
2012-09-07 15:15:10 +00:00
florian
4dee21c60e
+ NR_DEFAULTFLAGS and RS_DEFAULTFLAGS for all CPUs with flags added
...
git-svn-id: trunk@22181 -
2012-08-22 19:38:27 +00:00
Jonas Maebe
f79aff553e
- removed duplicate RS_INVALID declaration (with moreover a different
...
value than in cgbase)
git-svn-id: trunk@21619 -
2012-06-15 13:48:05 +00:00
sergei
e11c880b1e
x86 assembler improvements:
...
* Don't generate rex.w for "CALL|JMP|LCALL|LJMP regmem", they are 64-bit by default.
* LCALL,LJMP flagged as calljump instructions.
* LCALL,LJMP encode only far jumps and don't accept register operands.
* GAS writer: fixed writing rip-relative operands of calljump instructions.
+ test.
git-svn-id: trunk@19413 -
2011-10-08 11:34:04 +00:00
florian
87696a4b70
* cr*, dr*, tr* registers are 64 bit on x86-64
...
git-svn-id: trunk@18243 -
2011-08-17 11:42:11 +00:00
florian
58d1a66cd0
* set max_operands to 4 on x86 to be prepared for avx and to be able to fix #19910 ,
...
- memory usage of a compiler compilation increases by approx. 2 per cent due to this
- actually docs say avx has operations with 5 parameter, however I were not able to find
an instruction having 5 operands
git-svn-id: trunk@18202 -
2011-08-14 09:09:57 +00:00
pierre
af32b57170
* increase op2strtable size to string[15] and rectify askeygen to askeygenassist for ATT
...
git-svn-id: trunk@17358 -
2011-04-21 13:38:20 +00:00
Jonas Maebe
34c985cfa6
* added register type parameter to cgsize2subreg(), as the subreg can
...
depend on that (and correct a number of cases where this was wrong)
* set the correct subreg type for xmm x86_64 parameter registers
(resolved mantis #14067 )
git-svn-id: trunk@13410 -
2009-07-19 13:57:23 +00:00
yury
491f0fa1d8
* Replaced all user defined warnings by TODO comments to reduce compiler noise.
...
git-svn-id: trunk@11443 -
2008-07-23 11:00:03 +00:00
peter
658d9fcc92
* reset subregister before writing mm register names
...
git-svn-id: trunk@8846 -
2007-10-18 21:52:04 +00:00
florian
08f48f5fc9
* completed jrcxz support
...
git-svn-id: trunk@6401 -
2007-02-10 21:14:05 +00:00
florian
fb5e396881
+ experimental -Sv option to support vector arithmetics
...
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +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
peter
870be04a3f
* use dwarf_reg()
...
git-svn-id: trunk@3046 -
2006-03-26 20:15:32 +00:00
florian
5ece7cbc2f
* first part of x86-64 assembler
...
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +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
ebcb69478f
* fixed a lot of stuff for fpu/mm register variables
...
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
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
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
mazen
ad191865e3
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:22:23 +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
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
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
peter
221090453c
* x86_64 fixes for opsize
2004-02-05 18:28:37 +00:00