Commit Graph

10519 Commits

Author SHA1 Message Date
Jonas Maebe
e9108ed51c * fixed skipping of character after number of errors to report in
parsing of -Se<xxx> string (mantis #10849)

git-svn-id: trunk@10362 -
2008-02-19 20:20:26 +00:00
daniel
3540c400dc * Fix read/write enum on cpu's requiring alignment: Call 'align' the proper way.
git-svn-id: trunk@10351 -
2008-02-17 21:43:39 +00:00
florian
796f39a7a7 * force ansistring concatenation when building stabs
git-svn-id: trunk@10336 -
2008-02-16 08:53:54 +00:00
florian
d8d96f14e6 + experimental directive, resolves #10833
git-svn-id: trunk@10331 -
2008-02-15 19:29:34 +00:00
florian
e5a960d860 * set default reserved stack size on win32/win64 to 16MB
git-svn-id: trunk@10330 -
2008-02-15 19:06:23 +00:00
florian
f28636ac5b + dummy navradd unit
git-svn-id: trunk@10328 -
2008-02-14 20:40:18 +00:00
Jonas Maebe
f36e5411af * split cpu64bit compiler define into
a) cpu64bitaddr, which means that we are generating a compiler which
       will generate code for targets with a 64 bit address space/abi
    b) cpu64bitalu, which means that we are generating a compiler which
       will generate code for a cpu with support for 64 bit integer
       operations (possibly running in a 32 bit address space, depending
       on the cpu64bitaddr define)
   All cpus which had cpu64bit set now have both the above defines set,
   and none of the 32 bit cpus have cpu64bitalu set (and none will
   compile with it currently)
  + pint and puint types, similar to aint/aword (not pword because that
    that conflicts with pword=^word)
  * several changes from aint/aword to pint/pword
  * some changes of tcgsize2size[OS_INT] to sizeof(pint)

git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
florian
c05d4912f4 + basic system unit for avr-embedded
* fixed several compiler stuff to be able to start system unit compilation on avr

git-svn-id: trunk@10318 -
2008-02-13 20:35:16 +00:00
florian
cae52272aa * split ena_rq define
git-svn-id: trunk@10316 -
2008-02-13 19:06:17 +00:00
florian
469672cb56 * fixed another crash with the new function result handling for sysv x86-64 abi
git-svn-id: trunk@10312 -
2008-02-12 21:26:46 +00:00
peter
737212ff22 * fix result type of constset+[]
git-svn-id: trunk@10311 -
2008-02-12 17:30:00 +00:00
peter
417c832e9d * in node simplify
git-svn-id: trunk@10310 -
2008-02-12 17:27:27 +00:00
tom_at_work
52135af71f * implement branchless fpc_abs_long in a generic way
* enable optimization for ppc/ppc64 (two times faster than 
"generic" rtl branching routine)

git-svn-id: trunk@10306 -
2008-02-11 21:13:52 +00:00
florian
1a2a4af773 * hopefully the final fix for x86-64 sysv calling conventions
git-svn-id: trunk@10304 -
2008-02-11 19:46:40 +00:00
yury
ed86757898 * Pass const record parameters by reference for all calling conventions on i386-wince. It is needed to be Windows unit Delphi compatible, since WinAPI functions are cdecl on wince.
git-svn-id: trunk@10296 -
2008-02-11 15:12:41 +00:00
florian
e4997eaa45 * fixes safecall on non-win64 x86-64, should solve random rte 229
git-svn-id: trunk@10295 -
2008-02-11 13:47:41 +00:00
florian
4592402529 * fixed sysv x86-64 function results for records and arrays with sizes 9..16 bytes
git-svn-id: trunk@10285 -
2008-02-10 22:28:07 +00:00
Jonas Maebe
3e63d3f1dd - removed {$ifndef cpu64bit} code
git-svn-id: trunk@10275 -
2008-02-10 17:05:27 +00:00
Jonas Maebe
a497aec91d * always use ppc<targetcpu> instead of ppcross<targetcpu> on darwin,
because due to the mach-o executable format which can contain
    binaries for different architectures in a single file, different
    names for native and cross compilers are not used on Mac OS X
    (mantis #10067)

git-svn-id: trunk@10270 -
2008-02-10 14:42:49 +00:00
Jonas Maebe
59d9169bbd * perform typechecking of callinit/callcleanup statements immediately when
they are added (mantis #10807), because
   a) the typecheckpass of the entire blocks has to be postponed until firstpass
      because new statements may still be added in the firstpass (otherwise
      the newly added statements in the firstpass are never typechecked due to
      the blocknode already having a resultdef set)
   b) simplify can be called between the typecheck and firstpass, and it needs
      the typeinfo

git-svn-id: trunk@10263 -
2008-02-10 11:13:33 +00:00
Jonas Maebe
839edb58a1 - reverted r9776 (see comments to #10433)
git-svn-id: trunk@10261 -
2008-02-10 10:09:25 +00:00
Jonas Maebe
058e3762aa * added missing begin/end
git-svn-id: trunk@10260 -
2008-02-10 10:07:55 +00:00
Jonas Maebe
c44fb4a79e * call FreeInstance after fail if vmt<>nil rather than if vmt=1
(mantis #10790)

git-svn-id: trunk@10249 -
2008-02-08 15:04:58 +00:00
florian
a210a74629 * compiling skeleton
git-svn-id: trunk@10211 -
2008-02-04 20:57:09 +00:00
florian
0e13d07a31 + more avr code
git-svn-id: trunk@10207 -
2008-02-04 19:50:22 +00:00
Jonas Maebe
fee257ba81 * one more fix for x86 fpu stack swapping (mantis #10757)
git-svn-id: trunk@10199 -
2008-02-03 22:49:06 +00:00
Jonas Maebe
84401d2226 * fixed debug info for enum types after r10189
git-svn-id: trunk@10197 -
2008-02-03 21:45:59 +00:00
peter
13f6396221 * generalize def and symbol handling
* stabs uses ansistring instead of pchars
  * write procdef in separate loop. this fixes debugging of nested/overloaded procs

git-svn-id: trunk@10189 -
2008-02-03 17:52:30 +00:00
florian
bc73f9021c Merged revisions 5891-10167,10169-10180 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/avr

........
  r5891 | florian | 2007-01-11 17:30:12 +0100 (Do, 11 Jan 2007) | 2 lines
  
  + some initial work
........
  r10170 | florian | 2008-02-03 11:02:04 +0100 (So, 03 Feb 2008) | 2 lines
  
  * continued to work on avr port
........
  r10180 | florian | 2008-02-03 15:29:30 +0100 (So, 03 Feb 2008) | 2 lines
  
  + a lot of skeleton code for avr added
........

git-svn-id: trunk@10186 -
2008-02-03 17:21:52 +00:00
florian
90a3b20b48 Merged revisions 10168 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/avr

........
  r10168 | florian | 2008-02-03 10:56:10 +0100 (Sun, 03 Feb 2008) | 1 line
  
  * properties set
........

git-svn-id: trunk@10169 -
2008-02-03 09:59:37 +00:00
peter
169516ffc0 * don't optimize funcret with assignment result if the value is also used
as a parameter and the funcret is also passed as parameter. Because in that
    case both are pointing to the same memory location

git-svn-id: trunk@10159 -
2008-02-02 17:39:28 +00:00
Jonas Maebe
3521d64f4b - removed "do_count" parameter from tcallparanode.insert_typeconv
because the method was always called the same way (and it did not
    affect any counting anymore)
  * fixed and simplified read/write checking of methodpointer (mantis
    #10736)

git-svn-id: trunk@10155 -
2008-02-02 16:34:48 +00:00
peter
519b11dba7 * workaround for 2.2 rnagecheck
git-svn-id: trunk@10106 -
2008-01-29 23:19:24 +00:00
peter
6744b747b8 * remove goto, that prevents optimizations
git-svn-id: trunk@10083 -
2008-01-28 18:13:32 +00:00
peter
74f21d7bc3 * typecheck after converting type to constant set
git-svn-id: trunk@10081 -
2008-01-28 17:35:32 +00:00
Jonas Maebe
8349cde7db * changed byte/word/longbool to be Delphi-compatible (+ similar changes
for qwordbool) + test:
    o assigning true to such a variable now sets them to $ff/$ffff/$ffffffff
    o these types are now all signed
    o converting an integer type to a byte/word/long/qwordbool using an
      explicit type cast keeps the integer's original value stored in the
      bool, instead of forcing it to ord(true)/ord(false)
    (mantis #10233 and #10613, implemented for all architectures, testsuite
     tested for ppc32, sparc and x86)
  * fixed some places where the rtl depended on longbool(true) having the
    value 1
  * extended several boolean tests (and adapted some to no longer assume
    that byte/word/long/qwordbool(true)=1)
  + support for converting to qwordbool in second_int_to_bool for x86, ppc
    and sparc

git-svn-id: trunk@9898 -
2008-01-24 21:30:55 +00:00
Jonas Maebe
ea22e81374 * fixed include/exclude for byte-sized sets in registers
git-svn-id: trunk@9887 -
2008-01-23 22:28:12 +00:00
yury
801837f60d * Fixed bug #10681.
+ Test.

git-svn-id: trunk@9879 -
2008-01-23 10:24:04 +00:00
Jonas Maebe
53be0147d4 * fixed assignments to integer regvars typecasted to a type
of equal size but with different signdness + test

git-svn-id: trunk@9871 -
2008-01-22 21:27:34 +00:00
peter
266622deef * start new objectfile for interface wrappers
git-svn-id: trunk@9868 -
2008-01-22 18:49:29 +00:00
florian
94ea214f32 * more spilling fixes
git-svn-id: trunk@9820 -
2008-01-20 16:13:20 +00:00
florian
50294418bc * spilling for neg, ext and extb fixed
git-svn-id: trunk@9819 -
2008-01-20 16:07:42 +00:00
florian
ddad44bc1e * win64 -glw build fix
git-svn-id: trunk@9817 -
2008-01-20 15:13:42 +00:00
peter
de918497ef * support -Xg under linux
git-svn-id: trunk@9811 -
2008-01-20 12:12:15 +00:00
daniel
894dc04966 * Procedures containing a non-local label should not be inlined.
git-svn-id: trunk@9809 -
2008-01-20 12:08:12 +00:00
Jonas Maebe
1f1a43d7f0 * fixed crash when compiling inlined procedures containing labels
git-svn-id: trunk@9804 -
2008-01-20 10:29:04 +00:00
daniel
459382faa8 + Teach peephole optimizer the cmc/adc trick I used in int_str.
git-svn-id: trunk@9799 -
2008-01-19 21:47:37 +00:00
Jonas Maebe
5fbc947ae8 + -Xg support for darwin with dwarf
git-svn-id: trunk@9798 -
2008-01-19 20:54:36 +00:00
Jonas Maebe
56c18c5521 * fix from r9332 for shared libraries
git-svn-id: trunk@9797 -
2008-01-19 20:44:43 +00:00
daniel
4ca3a590e8 * Labels that are defined or referenced in a different lexical level
than their declaration need to be code generated as global asmlabels.

git-svn-id: trunk@9791 -
2008-01-19 13:50:58 +00:00