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