florian
4123e0425c
* don't generate instruction alignment fill bytes in non exectuable sections
...
git-svn-id: trunk@14251 -
2009-11-21 22:34:46 +00:00
Jonas Maebe
ec8fee45fe
* do not access local data via the GOT on x86_64, because
...
a) it's unnecessary
b) it's slower than "direct" RIP-relative accessing
c) it's not supported on darwin/x86_64 in certain cases
* never use absolute addressing on darwin/x86_64 (like on win64)
* when not generating PIC, make sure that a_loadaddr_ref_reg on x86_64
also uses RIP-relative addressing for darwin/x86_64 and win64
git-svn-id: trunk@13760 -
2009-09-27 13:43:56 +00:00
Jonas Maebe
146a819615
* fixed spilling of and operations on spilled 32 bit values for x86_64
...
(mantis #14403 )
git-svn-id: trunk@13573 -
2009-08-21 16:20:16 +00:00
yury
92ad06f1e8
* Always use RIP relative symbol addressing for x86_64 Windows targets. Bug #13657 .
...
* Support for simple form of RIP relative addressing by x86_64 assembler writer. Example: movl rax,SomeSymbol(%rip)
git-svn-id: trunk@13135 -
2009-05-13 10:07:44 +00:00
florian
80ff09c6f4
* correct handling of constant operands of aad/aam
...
git-svn-id: trunk@12158 -
2008-11-18 16:21:58 +00:00
florian
145dc4d8d6
* write assembler error at the correct position, first fix for #12595
...
git-svn-id: trunk@12157 -
2008-11-18 16:08:22 +00:00
florian
53ffda14f3
* fixes taking the address of an assembler block defined label
...
* create short jumps also for asm blocks, thanks to Sergej Gorelkin for the patch, resolves #11638
git-svn-id: trunk@12043 -
2008-11-09 21:14:45 +00:00
yury
5e11e697b4
* Use unsigned integers for sizes and positions to break 2GB limit in tdynamicarray, object writer, internal linker, coff and PE headers.
...
git-svn-id: trunk@11480 -
2008-07-28 20:29:25 +00:00
yury
0bcaf8845f
* Fixed 'mixed signed/unsigned' warnings.
...
* Suppressed 2 unreachable code warnings.
* Now x86 compiler compiles without warnings and notes! It will be great to keep such state in future...
git-svn-id: trunk@11455 -
2008-07-23 13:16:46 +00:00
florian
82c7896d8d
* more ins. dat issues popped up, did I mention I start to hate it :(?
...
git-svn-id: trunk@8968 -
2007-10-28 14:08:04 +00:00
peter
d74bd34a91
* fix 32bit truncation in type determination of constant operands
...
git-svn-id: trunk@8909 -
2007-10-22 16:36:41 +00:00
peter
c19217f846
* only for jump instructions we need to look at the relative
...
offset of an symbol
git-svn-id: trunk@8664 -
2007-09-27 20:10:30 +00:00
Jonas Maebe
b4b715f213
* make sure tai_align.calculatefillbuf no longer destroys the fillsize
...
field, because it can still be read afterwards
git-svn-id: trunk@8602 -
2007-09-22 13:01:30 +00:00
peter
67e16340be
* revert r8118
...
git-svn-id: trunk@8139 -
2007-07-22 19:59:00 +00:00
daniel
21293f5818
+ Add common type integer promotion.
...
- {$intpromotion common_type} or -CIcommon_type switches to common type promotion.
- {$intpromotion native_integer} or -CIcommon_type switches to current behaviour.
- Default in tp mode is common_type, native_integer in other modes
- Compiler can cycle with -CIcommon_type
- Still needs checking on other architectures than i386
git-svn-id: trunk@8118 -
2007-07-21 19:16:24 +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
daniel
182fca72f2
* Change spill_* routines to return Taicpu instead of Tai to increase
...
strong typing.
* Fix PowerPC R0 register allocation
git-svn-id: trunk@7317 -
2007-05-12 15:43:16 +00:00
florian
d55dbf92d3
* fixed assembling of cvt(t)ss2si
...
git-svn-id: trunk@6918 -
2007-03-18 17:35:22 +00:00
Jonas Maebe
9813a8708c
* fixed encoding of jcxz
...
git-svn-id: trunk@6398 -
2007-02-10 20:38:38 +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
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
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
peter
1de2f94b28
* fixed typo in r4848
...
git-svn-id: trunk@4966 -
2006-10-18 20:19:44 +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
micha
d704af7216
fix compilation for {$T+} linux/win
...
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +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
florian
e1d1f92672
* don't write rex twice
...
git-svn-id: trunk@4525 -
2006-08-31 21:58:13 +00:00
florian
5118e35016
* another mayewriterex added, fixes #7261
...
git-svn-id: trunk@4511 -
2006-08-27 18:49:12 +00:00
peter
34a58e5287
* fix alignment padding for x86_64
...
git-svn-id: trunk@4001 -
2006-06-29 20:34:54 +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
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
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
307315cef6
* movq is also a pure move
...
git-svn-id: trunk@3588 -
2006-05-19 23:52:10 +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
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
florian
f702b481f0
* fixed assembling of (%rbp)
...
git-svn-id: trunk@3239 -
2006-04-17 07:58:37 +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
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
florian
56dc874476
* rsp based addressing fixed
...
git-svn-id: trunk@3045 -
2006-03-26 20:14:17 +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