Commit Graph

4462 Commits

Author SHA1 Message Date
florian
bf32e2d2cf + tcg.direction is used now 2002-09-07 19:34:08 +00:00
florian
c1d369dc5f + added tcg.direction to allow upwards growing temp areas
i.e. temps with positive index
2002-09-07 18:25:00 +00:00
florian
e4664f0ed6 + tvarsym.paraitem added 2002-09-07 18:17:41 +00:00
florian
d78ad92f92 * first part of PowerPC fixes 2002-09-07 18:05:51 +00:00
florian
a7a354956d * first part of PowerPC fixes 2002-09-07 17:54:58 +00:00
peter
dcd9e0107c * old logs removed and tabs fixed 2002-09-07 15:25:00 +00:00
peter
8a03c810de * obsolete 2002-09-07 14:14:14 +00:00
peter
17aba7002c * fixed procdef access 2002-09-07 14:13:40 +00:00
carl
6c2bede5a8 * second part bug report 1996 fix, testrange in cordconstnode
only called if option is set (also make parsing a tiny faster)
2002-09-07 12:16:03 +00:00
Jonas Maebe
edb02a1409 * fixed small regalloction info bug 2002-09-07 11:50:02 +00:00
carl
e1b3ddc3fb * fix my stupid copy and paste bug 2002-09-07 09:16:55 +00:00
carl
8fd9561a31 * start bugfix 1996
* 64-bit typed constant now work correctly and fully (bugfix 2001)
2002-09-06 19:58:31 +00:00
carl
1603394d9a - moved files to systems directory 2002-09-06 15:05:23 +00:00
carl
517c2566e8 * moved files to systems directory 2002-09-06 15:03:50 +00:00
carl
a013d19c36 * bugfix of bug report 2072 (merged) 2002-09-06 14:58:42 +00:00
peter
20af604613 * memdebug enhancements 2002-09-05 19:29:42 +00:00
peter
8b5e92cb3c * removed repetitive pass counting
* display heapsize also for extdebug
2002-09-05 19:28:29 +00:00
peter
37bb42694b * fixed crash when current_module becomes nil 2002-09-05 19:27:05 +00:00
peter
f5a4b06b8a * fixed old callnode.det_resulttype code
* old ncal code is default again
2002-09-05 14:53:41 +00:00
peter
93f33a3d0c * internalerror instead of crash in getprocdef 2002-09-05 14:51:42 +00:00
pierre
0aceb4b76b * fix for bug #2004 merged 2002-09-05 14:17:27 +00:00
Jonas Maebe
86830c26b8 - reverted my last commit, it was completely bogus :( 2002-09-05 05:56:07 +00:00
Jonas Maebe
426de6d36f * fixed bugs in 64bit operations (registers weren't always allocated for
the result)
  * optimized 'const64 - reg64/mem64'
  * optimized equaln/unequaln with 64bit values (change them to
    '(left.hi xor right.hi) or (left.lo xor right.lo)' so there are less
    branches and the result can be returned in the flags this way. Could
    be done for the i386 too probably.
2002-09-04 19:42:45 +00:00
Jonas Maebe
d2401f67b4 - removed unnecessary typeconversion from char_to_string 2002-09-04 19:38:42 +00:00
Jonas Maebe
e66f54e328 * changed some ctypeconvnode/toggleflag(nf_explizit) combo's to
ctypeconvnode.create_explicit() statements
2002-09-04 19:32:56 +00:00
Jonas Maebe
650eb87f8c + parse basic optimization parameters 2002-09-04 16:03:53 +00:00
daniel
c2fcc297ad * Small bugfix for procdef selection 2002-09-03 21:32:49 +00:00
daniel
d5870e8075 * Activated new ncal code 2002-09-03 19:27:22 +00:00
daniel
fff92ef11e * Fixed PowerPC & M68000 compilation 2002-09-03 19:04:18 +00:00
daniel
b0364566d1 * Make Tprocdef.defs protected 2002-09-03 16:26:26 +00:00
peter
64c4be5ca9 * fixed private methods hiding public virtual methods 2002-09-03 15:44:44 +00:00
mazen
2b9b0d86ed +generic register names commented 2002-09-03 07:41:00 +00:00
peter
a17291b2d4 * array of char support for Str() 2002-09-02 19:24:41 +00:00
peter
36481b72bb * insert PASCALMAIN in library for Win32 only 2002-09-02 18:46:26 +00:00
peter
88dce133e4 * reuse a reference when resizing ordinal values to smaller sizes,
this is required for constructions like byte(w):=1 that are
    allowed in tp mode only
2002-09-02 18:46:00 +00:00
peter
c850b953c0 * fixed (not) pushing of empty parameters
* fixed implicit initialization/finalization generation
  * fixed/optimized local copy of value arguments init/final
2002-09-02 18:44:48 +00:00
peter
8a75d59544 * fixed parsing of register names with lowercase 2002-09-02 18:40:52 +00:00
florian
b5e2c87b87 * fixed generic procedure variable calling 2002-09-02 11:25:20 +00:00
Jonas Maebe
ce868dcdac + a_call_reg()
* small fix in a_call_ref()
2002-09-02 10:14:51 +00:00
Jonas Maebe
c7df12f6f0 * fixed range error 2002-09-02 06:09:02 +00:00
florian
6502638258 * several powerpc related stuff fixed 2002-09-01 21:04:47 +00:00
peter
f77536fece * use index register when available for generating a reference with
only a signle register. Using the base register could possibly
    destroy the framepointer
2002-09-01 19:27:34 +00:00
peter
a73ecec989 * fixed register variable loading from parasymtable, the call by
reference code was moved wrong
2002-09-01 19:26:32 +00:00
peter
5a06f334b7 * fixed maybe_save that did not support a reference with only
a index register. It now also updates the location with the new
    base register only
2002-09-01 18:50:20 +00:00
peter
274624f2f6 * assignn check in exitnode changed to use a separate boolean as the
assignn can be changed to a calln
2002-09-01 18:47:00 +00:00
peter
76bd75ed4a * fixed generic tcgvecnode
* move code that updates a reference with index register and multiplier
    to separate method so it can be overriden for scaled indexing
  * i386 uses generic tcgvecnode
2002-09-01 18:46:01 +00:00
peter
d2400aae38 * cleanup of tvecnode.det_resulttype
* move 0 element of string access check to resulttype
2002-09-01 18:44:17 +00:00
peter
5ab0e99252 * include accumulator in regs_to_push list 2002-09-01 18:43:27 +00:00
peter
b65dedc9e4 * reduced level of comment that type is wrong for release 2002-09-01 18:42:50 +00:00
florian
3546ffa8b0 + added abstract tcg.g_removevaluepara_openarray 2002-09-01 17:05:43 +00:00
peter
90308521d5 * fixed direct assembler for i386 2002-09-01 14:43:12 +00:00
peter
a4e309d6ae * removevaluepara added to fix the stackpointer so restoring of
saved registers works
2002-09-01 14:42:41 +00:00
peter
7d02a4f264 * increase refcount in exit(arg) for arg 2002-09-01 14:41:47 +00:00
daniel
f4c6d762fd - write_access fields removed in favor of a flag 2002-09-01 13:28:37 +00:00
peter
e0bcfca509 * fixed loading of procvar of object when the object is initialized
with 0
2002-09-01 12:15:40 +00:00
peter
8b2fb4187e * fixed some wrong levels in extdebug comments 2002-09-01 12:14:53 +00:00
peter
8ee2462ba4 * remove debug line
* containself methods can be called directly
2002-09-01 12:14:15 +00:00
peter
a06f84daf8 * use a_call_reg
* ungetiftemp for procvar of object temp
2002-09-01 12:13:00 +00:00
peter
f68c3a9552 * calc param_offset after parameters are read, because the calculation
depends on po_containself
2002-09-01 12:11:33 +00:00
peter
7898dcf9ed + a_call_reg, a_call_loc added
* removed exprasmlist references
2002-09-01 12:09:27 +00:00
daniel
b0ffb45275 + Added read/write notifications of variables. These will be usefull
for providing information for several optimizations. For example
   the value of the loop variable of a for loop does matter is the
   variable is read after the for loop, but if it's no longer used
   or written, it doesn't matter and this can be used to optimize
   the loop code generation.
2002-09-01 08:04:42 +00:00
daniel
4b82d30953 * Removed sets from Tcallnode.det_resulttype
+ Added read/write notifications of variables. These will be usefull
   for providing information for several optimizations. For example
   the value of the loop variable of a for loop does matter is the
   variable is read after the for loop, but if it's no longer used
   or written, it doesn't matter and this can be used to optimize
   the loop code generation.
2002-09-01 08:01:16 +00:00
Jonas Maebe
431b9fac81 * fixed a_call_ref (it should load ctr, not lr) 2002-08-31 21:38:02 +00:00
florian
391ce796ef * fixed several problems caused by Jonas' commit :) 2002-08-31 21:30:45 +00:00
Jonas Maebe
f107ba3bbe + support top_none for branches 2002-08-31 19:27:48 +00:00
Jonas Maebe
7a8429a4fe * fixed 64bit comparisons 2002-08-31 19:26:20 +00:00
Jonas Maebe
76111bb9eb + implemented a_call_ref() 2002-08-31 19:25:50 +00:00
florian
fb5e694dca * write double # before float constants when -al is turned on
else some gas versions interpret it as line number
2002-08-31 16:05:17 +00:00
florian
5e60724d23 + HEAP* stuff must be generated for Linux/PPC as well
+ direct assembler reader searches now global and static symtables as well
2002-08-31 15:59:30 +00:00
florian
5380652cad * ppc compilation fixed 2002-08-31 12:43:31 +00:00
mazen
c6b0a2e9a3 - undefining win32 when SPARC defined removed, no more needed. 2002-08-30 13:42:29 +00:00
mazen
c7bf4df982 *call parameter handling is now based on the new param manager 2002-08-30 13:16:23 +00:00
mazen
12c3e9a760 ncgcall.pas moved to ncpucall.pas (I'd like ncpu* insteade of nsparc* since it
provides processor independent units naming)
2002-08-30 06:15:27 +00:00
mazen
dd411127f4 added support for SPARC processors 2002-08-29 11:02:36 +00:00
mazen
66ab5e4a54 File added support to the new generic parameter handling 2002-08-29 10:16:20 +00:00
mazen
221d94a65e + added ncpucnp to fix a call to an abstract method in pss_2 2002-08-29 10:07:47 +00:00
mazen
2c774736c5 +added -gl to ease compiler debug 2002-08-29 10:06:01 +00:00
pierre
b6f43ac07b * fixed compilation cycle with -Cr option by adding explicit
longint typecast in PutPtrUInt and putexprint methods.
 + added checks for sizeof and internalerros if size is not handled.
2002-08-26 14:05:57 +00:00
peter
a28f75ed03 * sym.insert_in_data removed
* symtable.insertvardata/insertconstdata added
  * removed insert_in_data call from symtable.insert, it needs to be
    called separatly. This allows to deref the address calculation
  * procedures now calculate the parast addresses after the procedure
    directives are parsed. This fixes the cdecl parast problem
  * push_addr_param has an extra argument that specifies if cdecl is used
    or not
2002-08-25 19:25:18 +00:00
peter
8a43a12934 * also check the paratypes when a forward was found 2002-08-25 11:33:06 +00:00
peter
3486c0c668 * don't optimize not([lten,gten]) for setdefs 2002-08-25 11:32:33 +00:00
peter
160103faba * fixed not(not()) removal 2002-08-25 09:10:58 +00:00
peter
4aa03c0656 * add calls to release temps 2002-08-25 09:06:58 +00:00
peter
5c57932695 * fixed loop in concat_procdefs 2002-08-25 09:06:21 +00:00
peter
563a0dc818 * fixed wrong label in jump of except block (was also in n386flw wrong)
* fixed wrong pushing of raise parameters
  * fixed wrong compare in finally
2002-08-24 18:41:52 +00:00
peter
46731a77ab * really use tt_noreuse for exception frame buffers 2002-08-24 18:38:26 +00:00
peter
d551c5d867 * i386 uses now the generic exception management from ncgflw 2002-08-24 18:35:42 +00:00
peter
a903647258 * when reusing a block also update the temptype instead of forcing it
to tt_normal
2002-08-24 18:35:04 +00:00
peter
4b81e16fe2 * tempgen cleanup
* tt_noreuse temp type added that will be used in genentrycode
2002-08-23 16:14:48 +00:00
peter
770b338833 * also firstpass funcretrefnode if available. This was breaking the
asnode compilerproc code
2002-08-23 16:13:16 +00:00
mazen
9b960198d0 *** empty log message *** 2002-08-23 13:17:59 +00:00
mazen
a49dea276c fixed compilation problem related to tai_labeled_instruction 2002-08-23 13:11:11 +00:00
mazen
7dff137383 GDB support added 2002-08-23 10:33:30 +00:00
mazen
c52839c2d6 *** empty log message *** 2002-08-23 10:08:28 +00:00
mazen
af7d17d28c stab_regindex added for GDB support 2002-08-23 09:53:15 +00:00
daniel
3d7430e270 * Fixed the detection wether the first check of a for loop can be skipped 2002-08-22 15:15:20 +00:00
florian
ac29d65fc4 + register32 is now written by tnode.dowrite
* fixed write of value of tconstnode
2002-08-22 11:21:44 +00:00
mazen
9df674734c psystem.pas removed from sparc directory 2002-08-22 10:13:29 +00:00
mazen
dc65ff681b first insertion 2002\08\22 2002-08-22 08:30:50 +00:00
mazen
ab508fa44f *** empty log message *** 2002-08-21 13:30:07 +00:00
florian
4549d72802 + target macos for ppc added
+ frame work for mpw assembler output
2002-08-20 21:40:44 +00:00
Jonas Maebe
ed08ed1ce0 * the as node again uses a compilerproc
+ (untested) support for interface "as" statements
2002-08-20 18:23:32 +00:00
peter
ecb430a8eb * don't write (stabs)line info when inlining a procedure 2002-08-20 16:55:38 +00:00
peter
70028e433d * write address of varsym always 2002-08-20 16:54:40 +00:00
daniel
ba29715c7a * Tcallnode.det_resulttype rewritten 2002-08-20 10:31:26 +00:00
peter
91b49914f6 * More fixes for cross unit inlining, all tnodes are now implemented
* Moved pocall_internconst to po_internconst because it is not a
    calling type at all and it conflicted when inlining of these small
    functions was requested
2002-08-19 19:36:42 +00:00
carl
63ed5b6f99 - remove some unused files in m68k directory 2002-08-19 18:19:06 +00:00
carl
ed77671a9b + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
* more fixes to m68k for 64-bit operations
2002-08-19 18:17:47 +00:00
Jonas Maebe
d709f6720b * fixes 2002-08-19 17:35:42 +00:00
florian
0d1a344d7f + the ppc gas assembler writer adds now registers aliases
to the assembler file
2002-08-18 22:16:14 +00:00
florian
39f35373a8 + handling of local variables in direct reader implemented 2002-08-18 21:36:42 +00:00
peter
98dd65b0f3 * inlining is now also allowed in interface
* renamed write/load to ppuwrite/ppuload
  * tnode storing in ppu
  * nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
peter
2c2d44a77c * renamed local current_module to compiling_module because it
confused a lot in gdb
2002-08-18 19:59:03 +00:00
peter
197899d70a * more current_scanner fixes 2002-08-18 19:58:28 +00:00
florian
12ef4a944a * fixed compilation error 2002-08-18 18:16:55 +00:00
olle
00238998f3 + abi_powerpc_macos added to TSystemInfo 2002-08-18 17:10:15 +00:00
florian
a375ad9565 * remaining assembler writer bugs fixed, the errors in the
system unit are inline assembler problems
2002-08-18 10:42:37 +00:00
florian
c853f24a86 * more ppc assembling fixes 2002-08-18 10:34:30 +00:00
florian
4661ee3057 * small fixes to the alpha stuff 2002-08-18 09:13:02 +00:00
florian
1e4ded7bff * alpha files moved compiler/alpha 2002-08-18 09:06:54 +00:00
florian
41eda73784 * fixed compilation problems 2002-08-18 09:02:12 +00:00
florian
4144773f01 * result type handling in tcgcal.pass_2 overhauled
* better tnode.dowrite
  * some ppc stuff fixed
2002-08-17 22:09:43 +00:00
florian
b841ba8b16 * some assembler writer bugs fixed 2002-08-17 18:23:53 +00:00
florian
e313bab4ff * first part of procinfo rewrite 2002-08-17 09:23:33 +00:00
peter
87088e16fe * fixed possible crashes with current_scanner 2002-08-16 15:31:08 +00:00
peter
a74a35cde6 * Optimize fullcycle to not build the current PPC_TARGET, because it is
already build.
  * Generate the ppc<target> binaries of a fullcycle in the current dir
2002-08-16 15:30:39 +00:00
carl
745efb2c47 * issameref() to test if two references are the same (then emit no opcodes)
+ ret_in_reg to replace ret_in_acc
    (fix some register allocation bugs at the same time)
  + save_std_register now has an extra parameter which is the
    usedinproc registers
2002-08-16 14:24:57 +00:00
florian
2de332fa28 * powerpc compilation fix 2002-08-16 05:21:09 +00:00
peter
67abe74589 * obsoleted by files in the normal compiler dir 2002-08-15 19:14:32 +00:00
peter
8082f79ea6 * first things tai,tnode storing in ppu 2002-08-15 19:10:35 +00:00
carl
588abc6631 * jmpbuf size allocation for exceptions is now cpu specific (as it should)
* more generic nodes for maths
  * several fixes for better m68k support
2002-08-15 15:15:55 +00:00
carl
65988f5c09 * PPU checking errors for fpu emulation 2002-08-15 15:12:34 +00:00
carl
aa6453d52e * oldset define is now correct for all cpu's except i386
* correct compilation problems because of the above
2002-08-15 15:11:53 +00:00
carl
9d4f336f74 + fpu emulation helpers (ppu checking also) 2002-08-15 15:09:41 +00:00
carl
c33d99adb7 - a_load_sym_ofs_reg removed
* loadvmt now calls loadaddr_ref_reg instead
2002-08-15 08:13:54 +00:00
carl
b0bf9a2512 * fix small compilation problem 2002-08-14 19:31:26 +00:00
carl
d175d7113f + added fixing because first_in_to_real is now completely generic 2002-08-14 19:30:42 +00:00
carl
e212fa90d5 + generic int_to_real type conversion
+ generic unaryminus node
2002-08-14 19:26:55 +00:00
carl
e5895885fe + routine to optimize opcodes with constants 2002-08-14 19:26:02 +00:00
carl
b117e6ad01 * fix Florian's last commit for m68k compilation 2002-08-14 19:25:09 +00:00
carl
ecb32b0ef0 * first_int_to_real moved to i386 (other one is generic) 2002-08-14 19:19:14 +00:00
carl
534f6b2468 * bugfix of unaryminus node with left LOC_CREGISTER 2002-08-14 19:18:16 +00:00
carl
7866026667 + m68k type conversion nodes
+ started some mathematical nodes
  * out of bound references should now be handled correctly
2002-08-14 19:16:34 +00:00
carl
c403293c6a + fpu emulation support (generic and untested) 2002-08-14 19:14:39 +00:00
Jonas Maebe
3ab3c91e0a - remove valuelow/valuehigh fields from tlocation, because they depend
on the endianess of the host operating system -> difficult to get
    right. Use lo/hi(location.valueqword) instead (remember to use
    valueqword and not value!!)
2002-08-14 18:41:47 +00:00
Jonas Maebe
9af3fc1776 * adapted previous fix to Peter's asmsymbol patch 2002-08-14 18:13:28 +00:00
Jonas Maebe
dc44063472 * fixed tb0403 2002-08-14 18:00:42 +00:00
florian
af4302bc67 * more fixes for ppc calling conventions 2002-08-13 21:40:55 +00:00
carl
654ddac250 + m68k problems with cvs fixed?()! 2002-08-13 18:58:54 +00:00
carl
1edae761ef + m68k problems with cvs fixed?()! 2002-08-13 18:51:29 +00:00
carl
77346f3219 * rename swatoperands to swapoperands
+ m68k first compilable version (still needs a lot of testing):
      assembler generator, system information , inline
      assembler reader.
2002-08-13 18:45:32 +00:00
carl
a86c9a1c12 * rename swatoperands to swapoperands
+ m68k first compilable version (still needs a lot of testing):
      assembler generator, system information , inline
      assembler reader.
2002-08-13 18:30:22 +00:00
carl
c68b2dfbee * rename swatoperands to swapoperands
+ m68k first compilable version (still needs a lot of testing):
      assembler generator, system information , inline
      assembler reader.
2002-08-13 18:01:50 +00:00
carl
b0cb623e27 - removed and renamed 2002-08-13 17:35:10 +00:00
florian
4b659ab4b2 * casting of classes to interface fixed when the interface was
implemented by a parent class
2002-08-12 20:39:17 +00:00
peter
724ece4715 * tscannerfile is now destroyed in tmodule.reset and current_scanner
is updated accordingly. This removes all the loading and saving of
    the old scanner and the invalid flag marking
2002-08-12 16:46:04 +00:00
carl
9da171faf2 + stab register indexes for powerpc (moved from gdb to cpubase)
+ tprocessor enumeration moved to cpuinfo
  + linker in target_info is now a class
  * many many updates for m68k (will soon start to compile)
  - removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +00:00
florian
ecf7a2a33c * nil is now recognized as being compatible with a dynamic array 2002-08-12 14:17:56 +00:00
florian
31c178f207 + support of explicit type case boolean->char 2002-08-11 16:08:55 +00:00
florian
589c742efe + support of explicit type case <any ordinal type>->pointer
(delphi mode only)
2002-08-11 15:28:00 +00:00
peter
425bb45ddc * renamed current_library to objectlibrary 2002-08-11 14:32:25 +00:00
peter
fb64d51f69 * TScannerFile.SetInvalid added that will also reset inputfile 2002-08-11 14:28:19 +00:00
peter
ac71268ce6 * saving of asmsymbols in ppu supported
* asmsymbollist global is removed and moved into a new class
    tasmlibrarydata that will hold the info of a .a file which
    corresponds with a single module. Added librarydata to tmodule
    to keep the library info stored for the module. In the future the
    objectfiles will also be stored to the tasmlibrarydata class
  * all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
peter
03c85c0f75 * make fullcycle added 2002-08-11 13:08:52 +00:00
Jonas Maebe
387f05b00d * some overflow checking fixes 2002-08-11 11:40:16 +00:00
Jonas Maebe
9ba736bd04 + powerpc-specific genlinearlist 2002-08-11 11:39:12 +00:00
Jonas Maebe
3446f05f12 * genlinear(cmp)list can now be overridden by descendents 2002-08-11 11:37:42 +00:00
Jonas Maebe
6e499880f3 * always first try to use base and only then index 2002-08-11 11:36:57 +00:00
carl
a4d74cfd17 + try to commit this ** file again 2002-08-11 08:06:09 +00:00
carl
1f1145d30e - no longer used files removed 2002-08-11 07:02:00 +00:00
florian
3ec544be88 * fixed powerpc compilation problems 2002-08-11 06:14:40 +00:00
Jonas Maebe
ee7d5f7b2a * various fixes and optimizations 2002-08-10 17:15:31 +00:00
Jonas Maebe
bfbf0ea7c6 * register parameters are now LOC_CREGISTER instead of LOC_REGISTER 2002-08-10 17:15:20 +00:00
Jonas Maebe
856d8f9150 * optimizations and bugfix 2002-08-10 17:15:12 +00:00
Jonas Maebe
bedbc15e75 * endianess fix 2002-08-10 17:15:06 +00:00
Jonas Maebe
f1f27e99b4 + abs, sqr, sqrt implementations 2002-08-10 17:15:00 +00:00
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
Jonas Maebe
c7aefd286b * fixed stupid bug of mine in g_flags2reg() when optimizations are on 2002-08-10 10:06:04 +00:00
carl
f94cec7ddb - removed unused m68k stuff 2002-08-09 19:21:50 +00:00
carl
50537e95fc * fix generic exception handling 2002-08-09 19:18:27 +00:00
carl
947142291c * stack allocation is now done separately (at the end) of genentrycode
so temps. can be allocated before.
  * fix generic exception handling
2002-08-09 19:16:57 +00:00
carl
1ef442f4bf - removed newcg define 2002-08-09 19:15:41 +00:00
carl
afd252b0b5 * fixed stackframe parameter (should only contain local size),
set to zero currently
2002-08-09 19:14:28 +00:00
carl
6b9e686ae3 + reading of used registers in assembler routines is now
cpu-independent
2002-08-09 19:11:44 +00:00
carl
3a70811b1a * fixed generic exception management 2002-08-09 19:10:59 +00:00
carl
1b79ac2058 - moved new_exception and free_exception to ncgutils 2002-08-09 19:10:05 +00:00
carl
528d042442 + fix incorrect comment in insertlistcopy 2002-08-09 19:08:53 +00:00
carl
9d0465995f - removed as this unit is no longer necessary 2002-08-09 19:07:43 +00:00
florian
030eae46de * a couple of interface related fixes 2002-08-09 07:33:01 +00:00
florian
2b3a8dccf8 + support for octal constants, they are specified by a leading & 2002-08-06 21:12:16 +00:00
florian
b136cecacd * first part of ppc calling conventions fix 2002-08-06 20:55:20 +00:00
carl
f46268dbf6 + more m68k fixes 2002-08-06 15:14:30 +00:00
Jonas Maebe
e7d92a1aa7 * fixed bug in g_flags2reg()
* and yet more constant operation fixes :)
2002-08-06 07:12:05 +00:00
carl
eff31e8524 + more more more documentation
+ first version include/exclude (can't test though, not enough scratch for i386 :()...
2002-08-05 18:27:48 +00:00
carl
834283b0ba + updated m68k 2002-08-05 17:26:09 +00:00
carl
5c6c9c0499 - remove no longer used files 2002-08-05 17:20:59 +00:00
Jonas Maebe
10c4e8eb15 * fixed compilation problems 2002-08-05 08:58:53 +00:00
carl
4d03ffdf46 + updated exception routines 2002-08-04 19:52:04 +00:00
carl
32f3f65a26 + added generic exception support (still does not work!)
+ more documentation
2002-08-04 19:06:41 +00:00
Jonas Maebe
8ff3e3e1b3 * more misc. fixes, mostly constant-related 2002-08-04 12:57:55 +00:00
Jonas Maebe
54011b5bea * some misc constant fixes 2002-08-02 11:10:42 +00:00
Jonas Maebe
f8b6c707a2 * made assigned() handling generic
* add nodes now can also evaluate constant expressions at compile time
    that contain nil nodes
2002-08-02 07:44:30 +00:00
Jonas Maebe
ad728f0267 - removed some superfluous "in_paras := true" statements 2002-08-01 16:37:47 +00:00
marco
0e2046b1fd * Some more OpenBSD fixes. 2002-08-01 12:28:49 +00:00
Jonas Maebe
6eabcc71bc * re-enabled second_assigned() 2002-07-31 07:54:59 +00:00
florian
ed950491a8 * the code generator knows now if parameters are in registers 2002-07-30 20:50:43 +00:00
marco
74ab069c2e * OpenBSD makefile fixes 2002-07-30 13:46:23 +00:00
florian
e7a6cd18dd * more fixes for the ppc
+ wrappers for the tcnvnode.first_* stuff introduced
2002-07-29 21:23:42 +00:00
florian
102ba3a098 * some more ppc fixes 2002-07-29 21:16:02 +00:00
carl
3034065498 + restart m68k support 2002-07-29 17:51:32 +00:00
Jonas Maebe
07089fadb7 + nppcmem 2002-07-29 09:22:20 +00:00
Jonas Maebe
a1a3283c61 + tppcvecnode, almost straight copy of the i386 code, can most likely
be made generic if all treference type allow a base, index and offset
2002-07-29 09:21:30 +00:00
Jonas Maebe
04cb71275a + second_int_to_int implementation which is almost the same as the
generic implementation, but it avoids some unnecessary type conversions
2002-07-29 09:20:20 +00:00
florian
37351a4590 - removed debug code which was commited by accident 2002-07-28 21:38:30 +00:00
florian
463b355ba3 * more powerpc fixes
+ dummy tcgvecnode
2002-07-28 21:34:31 +00:00
florian
3fe0229843 + added direct assembler reader for PowerPC 2002-07-28 20:45:22 +00:00
Jonas Maebe
046ee7bf2b + 64 bit operations (badly tested), everything is implemented now!
* some small fixes
2002-07-28 16:02:49 +00:00
Jonas Maebe
e3cbc3cf22 + tcg64fppc.a_op64_const_reg_reg() and tcg64fppc.a_op64_reg_reg_reg()
* several fixes, most notably in a_load_reg_reg(): it didn't do any
    conversion from smaller to larger sizes or vice versa
  * some small optimizations
2002-07-28 16:01:59 +00:00
Jonas Maebe
75d8e42d85 * fixed bug in location_force_reg32() when converting smaller values to
64 bit locations
  * use cg.op_const_reg_reg() instead of a move and then cg.op_const_reg()
    in location_force_reg32()
2002-07-28 15:59:57 +00:00
Jonas Maebe
6bd0424826 * fixed a_load64_const_reg() for big endian systems 2002-07-28 15:57:15 +00:00
Jonas Maebe
b11d7a19f3 + tcg64.a_op64_const_reg_reg() and tcg64.a_op64_reg_reg_reg() methods +
generic implementation
2002-07-28 15:56:00 +00:00
carl
a5a3f7488b + correct size of parameter (64-bit portability) 2002-07-28 09:25:37 +00:00
carl
8284576720 + generic case node 2002-07-28 09:24:18 +00:00
Jonas Maebe
ccf4a67d81 + second_addboolean(), second_addfloat() and second_addsmallset()
(64bit stuff is all that's left to do)
2002-07-27 20:00:59 +00:00
Jonas Maebe
b4cfa73079 * fixed a_loadaddr_ref_reg()
* fixed g_flags2reg()
  * optimized g_concatcopy()
2002-07-27 19:59:29 +00:00
Jonas Maebe
1b983ee56e * some typo corrections in the instruction tables
* renamed the m* registers to v*
2002-07-27 19:57:18 +00:00
Jonas Maebe
6b83738e7d + generic implementation of tcg.g_flags2ref()
* tcg.flags2xxx() now also needs a size parameter
2002-07-27 19:53:51 +00:00
florian
1b5435381b * several PowerPC related fixes to get forward with system unit compilation 2002-07-26 22:22:10 +00:00
florian
eb2ca8d10f * rewrote the system handling 2002-07-26 21:15:37 +00:00
Jonas Maebe
0d740d4de8 + intial implementation of add nodes, only integer/enumeration/pointer/...
handling is finished
2002-07-26 12:31:56 +00:00
Jonas Maebe
83ce7360ed * fixed typo in instruction table (_subco_ -> a_subco) 2002-07-26 12:30:51 +00:00
Jonas Maebe
3ac9c35136 * don't always convert the second argument of inc/dec to a longint, but
to a type based on the first argument
2002-07-26 12:28:50 +00:00
Jonas Maebe
e2c5923e97 * fixed range errors 2002-07-26 11:19:57 +00:00
Jonas Maebe
ed2bdb31a6 * the optimization of converting a multiplication with a power of two to
a shl is moved from n386add/secondpass to nadd/resulttypepass
2002-07-26 11:17:52 +00:00
Jonas Maebe
185fa10345 * fixed (actual and potential) range errors 2002-07-26 11:16:35 +00:00
Jonas Maebe
61a2a3ae37 * fixed bug in shl/shr code 2002-07-26 10:48:34 +00:00
florian
2674f8a450 * fixed a mistake in yesterday's commit, forgot to commit it 2002-07-26 09:45:20 +00:00
florian
30fae40c29 no message 2002-07-25 22:58:30 +00:00
florian
7bf1321808 * several fixes, small test units can be compiled 2002-07-25 22:55:33 +00:00
carl
ebbd8e9e04 + added generic inline nodes 2002-07-25 18:01:58 +00:00
carl
f6b1f35207 + Resulttype for floats is now CPU independent (bestrealytype)
+ Generic version of some routines (call to RTL routines)
      : still untested.
2002-07-25 18:00:19 +00:00
carl
448d40de1a + FPURESULTREG -> FPU_RESULT_REG 2002-07-25 17:56:29 +00:00
carl
9a26de0ea3 + First working revision 2002-07-25 17:55:41 +00:00
carl
86ef6eec0b + Extended is now CPU dependant (equal to bestrealtype) 2002-07-25 17:54:24 +00:00
florian
52dbda43c3 + initial release of x86-64 target code 2002-07-24 22:38:15 +00:00
florian
0a9b56aa2e no message 2002-07-24 21:03:42 +00:00
florian
156fc666c8 * small typo fixed, compiles with 1.0.x again 2002-07-24 14:38:00 +00:00
marco
ea53f048aa * Fixed small error 2002-07-24 13:51:34 +00:00
marco
1f5b2f26ba * urgent fix. 2002-07-24 13:10:22 +00:00
carl
6e3f0ce7f3 + first revision (incomplete) 2002-07-24 04:07:49 +00:00