Commit Graph

200 Commits

Author SHA1 Message Date
carl
18b102ce95 + moved target_cpu_string to cpuinfo
* renamed asmmode enum.
  * assembler reader has now less ifdef's
  * move from nppcmem.pas -> ncgmem.pas vec. node.
2002-08-10 14:46:29 +00:00
carl
6b9e686ae3 + reading of used registers in assembler routines is now
cpu-independent
2002-08-09 19:11:44 +00:00
florian
b136cecacd * first part of ppc calling conventions fix 2002-08-06 20:55:20 +00:00
florian
3fe0229843 + added direct assembler reader for PowerPC 2002-07-28 20:45:22 +00:00
florian
59abf2555b * types.pas renamed to defbase.pas because D6 contains a types
unit so this would conflicts if D6 programms are compiled
  + Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
daniel
399036f1c2 * State tracker work
* The whilen and repeatn are now completely unified into whilerepeatn. This
  allows the state tracker to change while nodes automatically into
  repeat nodes.
* Resulttypepass improvements to the notn. 'not not a' is optimized away and
  'not(a>b)' is optimized into 'a<=b'.
* Resulttypepass improvements to the whilerepeatn. 'while not a' is optimized
  by removing the notn and later switchting the true and falselabels. The
  same is done with 'repeat until not a'.
2002-07-19 11:41:34 +00:00
florian
31da813d1d * exit is now a syssym instead of a keyword 2002-07-16 15:34:20 +00:00
florian
336808f6c3 * start of the new generic parameter handling 2002-07-11 14:41:27 +00:00
florian
479a745096 * first x86-64 patches 2002-07-04 20:43:00 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
carl
682c2289fa + added more patches from Mazen for SPARC port 2002-05-06 19:54:50 +00:00
florian
6bbaa14daf * block nodes within expressions shouldn't release the used registers,
fixed using a flag till the new rg is ready
2002-04-25 20:15:39 +00:00
peter
6320530bdd * removed newn and disposen nodes, the code is now directly
inlined from pexpr
  * -an option that will write the secondpass nodes to the .s file, this
    requires EXTDEBUG define to actually write the info
  * fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +00:00
carl
87aa88e9b7 + generic FPC_CHECKPOINTER
+ first parameter offset in stack now portable
* rename some constants
+ move some cpu stuff to other units
- remove unused constents
* fix stacksize for some targets
* fix generic size problems which depend now on EXTEND_SIZE constant
2002-04-20 21:32:23 +00:00
peter
8af460ac31 * using inherited; without a parent having the same function
will do nothing like delphi
2002-04-16 16:11:17 +00:00
carl
5befcda7e5 + target_info.size_of_pointer -> pointer_Size 2002-04-15 18:57:22 +00:00
carl
9ea5003a82 + asm statement uses ALL_REGISTERS 2002-04-14 16:53:54 +00:00
Jonas Maebe
7fb55bf4e4 + a_loadfpu_* and a_loadmm_* methods in tcg
* register allocation is now handled by a class and is mostly processor
    independent (+rgobj.pas and i386/rgcpu.pas)
  * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
  * some small improvements and fixes to the optimizer
  * some register allocation fixes
  * some fpuvaroffset fixes in the unary minus node
  * push/popusedregisters is now called rg.save/restoreusedregisters and
    (for i386) uses temps instead of push/pop's when using -Op3 (that code is
    also better optimizable)
  * fixed and optimized register saving/restoring for new/dispose nodes
  * LOC_FPU locations now also require their "register" field to be set to
    R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
  - list field removed of the tnode class because it's not used currently
    and can cause hard-to-find bugs
2002-03-31 20:26:33 +00:00
peter
58218bf81f * Regenerated with updated fpcmake 2002-03-11 19:10:28 +00:00
peter
4b2aa039e6 * allow oridinal labels again 2002-03-04 17:54:59 +00:00
peter
cdf0df1808 * allow accessing locals in other lexlevel when the current assembler
routine doesn't have locals.
2002-01-29 21:32:03 +00:00
peter
fd2ad837e2 * implicit result variable generation for assembler routines
* removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
2002-01-24 18:25:48 +00:00
Jonas Maebe
816cfa08b3 * allow recursive calls again in assembler procedure 2001-11-09 10:06:56 +00:00
peter
d2e1952377 * procsym definition rewrite 2001-11-02 22:58:00 +00:00
florian
b0e3e03f08 * fixed ranges in case statements with widechars 2001-10-26 22:36:42 +00:00
peter
e37dbf904d * calling convention rewrite 2001-10-25 21:22:32 +00:00
marco
7215d46735 * Make new/dispose system functions instead of keywords 2001-10-24 11:51:39 +00:00
florian
451ca157c4 * several widechar fixes, case works now 2001-10-17 22:41:04 +00:00
Jonas Maebe
d8c104b25d * fixed goto/label/try bugs 2001-10-16 15:10:34 +00:00
peter
67f5dc7f76 * "fpc -P?" command to query for used ppcXXX compiler 2001-09-22 11:11:43 +00:00
Jonas Maebe
ca27b25d5e * fixed superfluous generation of stackframes for assembler procedures
with no local vars or para's (this broke the backtrace printing in case
    of an rte)
2001-09-06 10:21:50 +00:00
Jonas Maebe
f98641013f * set funcretsym for assembler procedures too (otherwise using __RESULT
in assembler procedures causes a crash)
2001-09-03 13:19:12 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00
Jonas Maebe
a6cfe4083a + tempcreate/ref/delete nodes (allows the use of temps in the
resulttype and first pass)
  * made handling of read(ln)/write(ln) processor independent
  * moved processor independent handling for str and reset/rewrite-typed
    from firstpass to resulttype pass
  * changed names of helpers in text.inc to be generic for use as
    compilerprocs + added "iocheck" directive for most of them
  * reading of ordinals is done by procedures instead of functions
    because otherwise FPC_IOCHECK overwrote the result before it could
    be stored elsewhere (range checking still works)
  * compilerprocs can now be used in the system unit before they are
    implemented
  * added note to errore.msg that booleans can't be read using read/readln
2001-08-23 14:28:35 +00:00
peter
81200dc9ef * funcret moved from tprocinfo to tprocdef 2001-08-06 21:40:46 +00:00
peter
f86ce17588 + hint directive parsing support 2001-06-03 21:57:35 +00:00
Jonas Maebe
f4ab3095c2 * fixed web bugs 1480 and 1481 2001-05-17 13:25:24 +00:00
florian
3c5793d8c6 * some Delphi incompatibilities fixed:
- out, dispose and new can be used as idenfiers now
     - const p = apointerype(nil); is supported now
  + support for const p = apointertype(pointer(1234)); added
2001-05-04 15:52:03 +00:00
peter
9a47ac9ec2 * m68k updates merged from fixes branch 2001-04-21 12:03:11 +00:00
peter
0c03535b5b * registration of targets and assemblers 2001-04-18 22:01:53 +00:00
peter
5677fbe1b4 * fixed crash in labelnode
* easier detection of goto and label in try blocks
2001-04-15 09:48:29 +00:00
peter
af5d6e60e7 * moved more code from pass_1 to det_resulttype 2001-04-14 14:07:10 +00:00
peter
a7cf57524e * symtable change to classes
* range check generation and errors fixed, make cycle DEBUG=1 works
  * memory leaks fixed
2001-04-13 01:22:06 +00:00
peter
b193bf7df3 * remove unnecessary calls to firstpass 2001-04-04 22:43:50 +00:00
peter
4e2655cdc5 * resulttype rewrite 2001-04-02 21:20:29 +00:00
florian
1008d7faa0 + support for type a = (a=1); in Delphi mode added
+ procedure p(); in Delphi mode supported
  + on isn't keyword anymore, it can be used as
    id etc. now
2001-03-22 22:35:42 +00:00
peter
d8abf76f6b * getsym redesign, removed the globals srsym,srsymtable 2001-03-11 22:58:49 +00:00