Jonas Maebe
7b5ee7342a
* fixed wrong generation of teardown of stackframe on i386-darwin
...
in case no stackframe was generated (in case no pi_do_call in
current_procinfo.flags)
git-svn-id: trunk@2876 -
2006-03-11 22:38:28 +00:00
Jonas Maebe
5f0f08dd18
* fixed calling cdecl functions which return a large record with
...
use_fixed_stack on i386
git-svn-id: trunk@2872 -
2006-03-11 22:12:20 +00:00
Jonas Maebe
3765a9bbb8
* fixed set_first_temp_offset for use_fixed_stack
...
git-svn-id: trunk@2866 -
2006-03-11 21:08:04 +00:00
Jonas Maebe
431cead7a2
* more disabling of interrupt code for i386-darwin
...
git-svn-id: trunk@2862 -
2006-03-11 15:10:20 +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
6e58ad4a12
* set firsttempoffset properly for use_fixed_stack
...
git-svn-id: trunk@2853 -
2006-03-11 13:54:03 +00:00
Jonas Maebe
fad5d59bd9
* turned {$ifdef cputargethasfixedstack} into "if use_fixed_stack"
...
* fixed i386 parameter passing of function calls nested in parameters
of functions which also need the stack to pass poarameters
git-svn-id: trunk@2847 -
2006-03-10 23:44:04 +00:00
Jonas Maebe
41eba7dffe
* properly calculate the value to add to esp at the end of a function
...
without framepointer
* use generic save/restore exception reason code for use_fixed_stack
git-svn-id: trunk@2846 -
2006-03-10 22:34:11 +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
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
peter
5ac78d1ec3
* fix range error
...
git-svn-id: trunk@2640 -
2006-02-20 06:59:14 +00:00
daniel
e138c9c081
+ Add nice little peephole trick
...
+ Add a comment to another
git-svn-id: trunk@2602 -
2006-02-15 22:03:07 +00:00
Jonas Maebe
a68ca7eb2a
* fixed web bug #4768 + test
...
git-svn-id: trunk@2479 -
2006-02-08 19:22:26 +00:00
peter
4bee83c736
* range check errors
...
git-svn-id: trunk@2402 -
2006-02-02 09:03:02 +00:00
florian
8cd8e4ba8d
+ basic dwarf support for variables and types
...
git-svn-id: trunk@2353 -
2006-01-28 16:06:08 +00:00
florian
b06643a1eb
* tai_const refactored
...
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
florian
aa176601fb
+ added more dwarf sections
...
git-svn-id: trunk@2318 -
2006-01-21 21:22:47 +00:00
Jonas Maebe
ef4ece3674
* fixed allocregbetween in case the first removed tai_regalloc is an
...
allocation
git-svn-id: trunk@2241 -
2006-01-09 10:07:14 +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
e43a1223ff
* fixed refs book keeping
...
git-svn-id: trunk@2211 -
2006-01-07 21:10:39 +00:00
Jonas Maebe
1521a33979
* fixed allocregdebug code
...
git-svn-id: trunk@2204 -
2006-01-07 15:01:46 +00:00
Jonas Maebe
5692b93a52
* fixed bug in regalloc info in case a sequence is swapped with
...
a storeback at the end (i.e., "mov x,y" ... "mov y,x")
git-svn-id: trunk@2197 -
2006-01-06 15:29:25 +00:00
Jonas Maebe
a885e9da0e
* fixed replaceregdebug code
...
git-svn-id: trunk@2196 -
2006-01-06 14:55:42 +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
fb4557d71e
* first implementation of pic for i386
...
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
florian
008da5b11c
+ new cpus/fpus added
...
git-svn-id: trunk@2101 -
2006-01-01 12:41:39 +00:00
peter
717c2172eb
* support db $01 db $02
...
git-svn-id: trunk@1996 -
2005-12-20 07:59:11 +00:00
florian
bec0daebfa
+ optimized <dword> div <const dword>
...
git-svn-id: trunk@1993 -
2005-12-19 22:19:43 +00:00
peter
5942d23b1b
* fix range error
...
git-svn-id: trunk@1974 -
2005-12-16 17:24:00 +00:00
florian
3582108be1
* signed divisions with constants are always done without idiv
...
git-svn-id: trunk@1965 -
2005-12-15 22:36:48 +00:00
florian
5ea49bedd0
* fixed handling of imul with one parameter
...
git-svn-id: trunk@1964 -
2005-12-15 22:36:16 +00:00
Jonas Maebe
b507ddae51
* fixed crash when an optimized sequence extends till the start of an
...
assembler block
git-svn-id: trunk@1869 -
2005-12-02 11:09:13 +00:00
florian
a3ed7cbd12
+ check validity of -Oa parameter
...
git-svn-id: trunk@1559 -
2005-10-22 15:09:39 +00:00
peter
19eaf660c2
* more flexibel support for typecasting to different sizes
...
fixes tw4450
git-svn-id: trunk@1544 -
2005-10-20 11:13:49 +00:00
Jonas Maebe
867aaef744
* fixed restoring of register contents one instruction too far when removing
...
a previous unused load
git-svn-id: trunk@1465 -
2005-10-18 09:31:54 +00:00
florian
8b01dce70a
* cmov ref,reg disabled because ref might be never nil
...
git-svn-id: trunk@1407 -
2005-10-16 12:25:58 +00:00
Jonas Maebe
8b82f90b27
* fixed overflows in counters used for operands in case opcode without
...
operands
git-svn-id: trunk@1323 -
2005-10-08 12:02:39 +00:00
Jonas Maebe
8471e10137
* fixed tw4266
...
git-svn-id: trunk@1317 -
2005-10-07 16:48:51 +00:00
peter
affb69dd7f
* fixed const and reg parameter passing with alignment of 2 (go32v2/os2)
...
git-svn-id: trunk@1307 -
2005-10-06 07:29:41 +00:00
Jonas Maebe
c3a5f88a7b
* fixed webtbs/tw4388: properly process regalloc info coming right after
...
a tai_marker of type asmblockend, and fixed removal of too many
tai_regallocs in some cases (daopt386.pas)
* some preventive fixes to make sure the optimizer doesn't start optimizing
inside inline assembler blocks (csopt386.pas)
git-svn-id: trunk@1284 -
2005-10-04 13:30:13 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
e5ca17b598
* fix compilation for r1224
...
git-svn-id: trunk@1235 -
2005-09-30 05:59:34 +00:00
Jonas Maebe
f3384bab09
+ some initial darwin/x86 stuff:
...
* align stack to 16 bytes
* extended takes 16 bytes
* <= 8 byte records are passed in registers
git-svn-id: trunk@1224 -
2005-09-29 11:31:26 +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
florian
23d1caba7e
* allow type postfix like: [esi].currency
...
git-svn-id: trunk@1098 -
2005-09-17 18:09:47 +00:00
florian
d56e29b9dd
* fixed previous commit
...
git-svn-id: trunk@1097 -
2005-09-17 17:54:26 +00:00
florian
8c6316ce2a
* allow byte, word, dword, qword as size qualifier
...
git-svn-id: trunk@1096 -
2005-09-17 17:12:27 +00:00
peter
ca66b9f7c1
* force writing of new section before generating the jumptable
...
git-svn-id: trunk@1085 -
2005-09-15 14:08:02 +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
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
9be5247db5
* dyn. arrays are always passed by value, fixes 4240
...
git-svn-id: trunk@800 -
2005-08-05 21:52:58 +00:00
florian
804207239d
*c <int64>:=-<longint> fixed (bug 4253)
...
git-svn-id: trunk@796 -
2005-08-05 19:00:30 +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
b222cc7519
- n386cnv.pas removed, was empty
...
git-svn-id: trunk@786 -
2005-08-03 20:21:55 +00:00
peter
2e00bd1480
* support local labels in references
...
git-svn-id: trunk@764 -
2005-07-29 07:06:12 +00:00
florian
5df84f7222
* cvtxx2yy has now proper modification information
...
git-svn-id: trunk@757 -
2005-07-26 21:06:02 +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
peter
03c02cdb42
* support Type[index] typecasting
...
git-svn-id: trunk@711 -
2005-07-20 11:30:00 +00:00
Jonas Maebe
8bc4e0a32f
* inline and compilerproc are now procoptions instead of proccall types
...
(so both can be combined with each other, as well as with other calling
conventions)
* defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated
git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00
daniel
9989bb0d3c
* Add operator size to "ret immidiate" instruction
...
git-svn-id: trunk@607 -
2005-07-10 09:34:51 +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
peter
c1b2e1aac5
* check function/procedure type when adding a proc definition
...
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +00:00
florian
07442c5693
* fixed passing of variant parameters for windows api
...
* widestrings need to be allocated by a special OS call on windows
git-svn-id: trunk@458 -
2005-06-20 19:56:36 +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
757ed4e8d3
* standard assembler reader for i386
...
git-svn-id: trunk@235 -
2005-06-07 13:20:14 +00:00
peter
4ace790492
* remove $Log
...
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +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
36dd45fbc3
* allocation strings fixed allocated<->released where exchanged
...
git-svn-id: trunk@200 -
2005-06-05 07:47:28 +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
66755db8b4
* fixed web bug #3905
2005-04-22 15:55:08 +00:00
florian
33ec5d49c5
* USECMOV fixed
2005-03-20 21:41:10 +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
Jonas Maebe
126f3fa6cf
* fixed loop which could go into neverneverland in case of embedded
...
assembler blocks
2005-02-26 01:23:29 +00:00
Jonas Maebe
04b1263e7f
* fixed uninitialised function result in getfinaldestination() when
...
maximum recursion reached
2005-02-25 20:50:53 +00:00
peter
dd0664156d
* fix passing of 64bit values when using -Or
2005-02-15 19:16:04 +00:00
peter
482d781af3
win32 stdcall fixes needed for tw3650
2005-02-14 19:42:02 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
22d9294ab3
+ overflow checking for the arm
2005-02-13 18:55:19 +00:00
peter
18ebd28692
* push_addr_param must be defined per target
2005-02-03 20:04:49 +00:00
peter
8f2a768124
* fix win32 small array parameters
2005-02-03 17:10:21 +00:00
peter
79eac1c0b3
* fix [regpara] in intel assembler
2005-01-31 17:07:50 +00:00
peter
46dbff9c93
* revert last commit
2005-01-30 11:03:22 +00:00
peter
cd01e600b9
* update x86_64 with new cpupara
2005-01-29 11:36:52 +00:00
peter
6ee925dec8
* spaces in register names
2005-01-25 18:48:34 +00:00
peter
e820bc93f2
* interface wrapper generation moved to cgobj
...
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
florian
c08ec5fbf3
* wrong prefix output for masm fixed
2005-01-24 20:44:29 +00:00
peter
79c20ebf7d
* use val() for decoding integers
2005-01-20 17:05:53 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
peter
8d251e8506
* unit mapping rewrite
...
* new derefmap added
2005-01-19 22:19:41 +00:00