carl
05d86bbef8
* memory optimization with tconstsym (1.5%)
2002-11-22 22:48:10 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
peter
edbd98176b
* made tasmsymbol.refs private (merged)
2002-11-15 16:29:30 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +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
florian
e313bab4ff
* first part of procinfo rewrite
2002-08-17 09:23:33 +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
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
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
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +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
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
florian
336808f6c3
* start of the new generic parameter handling
2002-07-11 14:41:27 +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
peter
f6b3e2e37f
* synchronized cpubase between powerpc and i386
...
* moved more tables from cpubase to cpuasm
* tai_align_abstract moved to tainst, cpuasm must define
the tai_align class now, which may be empty
2002-05-14 17:28:08 +00:00
peter
4dcd96747e
* moved entry and exitcode to ncgutil and cgobj
...
* foreach gets extra argument for passing local data to the
iterator function
* -CR checks also class typecasts at runtime by changing them
into as
* fixed compiler to cycle with the -CR option
* fixed stabs with elf writer, finally the global variables can
be watched
* removed a lot of routines from cga unit and replaced them by
calls to cgobj
* u32bit-s32bit updates for and,or,xor nodes. When one element is
u32bit then the other is typecasted also to u32bit without giving
a rangecheck warning/error.
* fixed pascal calling method with reversing also the high tree in
the parast, detected by tcalcst3 test
2002-05-12 16:53:04 +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
carl
5befcda7e5
+ target_info.size_of_pointer -> pointer_Size
2002-04-15 18:57:22 +00:00
peter
5b242f7741
* tlocation,treference update
...
* LOC_CONSTANT added for better constant handling
* secondadd splitted in multiple routines
* location_force_reg added for loading a location to a register
of a specified size
* secondassignment parses now first the right and then the left node
(this is compatible with Kylix). This saves a lot of push/pop especially
with string operations
* adapted some routines to use the new cg methods
2002-04-02 17:11:27 +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
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
peter
915b5cd7a9
* split constsym.value in valueord,valueordptr,valueptr. The valueordptr
...
is used for holding target platform pointer values. As those can be
bigger than the source platform.
2001-09-02 21:18:28 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
19e153abd3
* under development flag for targets
2001-08-12 17:57:06 +00:00
peter
81200dc9ef
* funcret moved from tprocinfo to tprocdef
2001-08-06 21:40:46 +00:00
peter
0c03535b5b
* registration of targets and assemblers
2001-04-18 22:01:53 +00:00
peter
60162bf433
* allow unit.identifier in asm readers
2001-04-13 20:06:05 +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
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
peter
d8abf76f6b
* getsym redesign, removed the globals srsym,srsymtable
2001-03-11 22:58:49 +00:00
peter
684970ea22
* merged generic m68k updates from fixes branch
2001-02-26 19:44:52 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
Jonas Maebe
c91a23c27d
* new constant handling: from now on, hex constants >$7fffffff are
...
parsed as unsigned constants (otherwise, $80000000 got sign extended
and became $ffffffff80000000), all constants in the longint range
become longints, all constants >$7fffffff and <=cardinal($ffffffff)
are cardinals and the rest are int64's.
* added lots of longint typecast to prevent range check errors in the
compiler and rtl
* type casts of symbolic ordinal constants are now preserved
* fixed bug where the original resulttype wasn't restored correctly
after doing a 64bit rangecheck
2000-12-07 17:19:42 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00
peter
de70cf38b3
* more fixes
2000-11-06 22:30:30 +00:00
florian
51527ba1c9
+ merged Attila's changes for interfaces, not tested yet
2000-11-04 14:25:19 +00:00
peter
4bcd969993
* merged asm result patch part 2
2000-10-31 22:30:13 +00:00
peter
451723647e
* symtable splitted, no real code changes
2000-10-31 22:02:46 +00:00
peter
092352b0fd
* merged @result fix from Pierre
2000-10-08 10:26:33 +00:00
peter
5218af7926
* delphi compile fixes
2000-09-24 21:19:48 +00:00
peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
peter
4c94659743
* moved some util functions from globals,cobjects to cutils
...
* splitted files into finput,fmodule
2000-08-27 16:11:48 +00:00
peter
ec3f05fe39
* merged patches name generation in lib and asm constant eval
2000-08-06 10:42:29 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
peter
535f63923c
* fixed % parsing and added modulo support
...
* changed some evaulator errors to more generic illegal expresion
2000-05-26 18:23:09 +00:00
peter
8900400a2c
+ typecasting support for variables, but be carefull as word,byte can't
...
be used because they are reserved assembler keywords
2000-05-23 20:36:28 +00:00
pierre
0822332888
fix wrong handling of var para for size bug #961
2000-05-22 12:47:52 +00:00
peter
34e840268a
* fixed size of const parameters in asm readers
2000-05-18 17:05:15 +00:00
pierre
fddd96280d
* fixed several compare problems between longints and
...
const > $80000000 that are treated as int64 constanst
by Delphi reported by Kovacs Attila Zoltan
2000-05-11 09:56:20 +00:00
peter
4b09b89588
* fixed reference parsing
2000-05-08 13:23:03 +00:00
pierre
841f0d21c1
* bug in TOperand.SetSize corrected
2000-04-06 07:56:04 +00:00
pierre
67a0b6c79e
+ TOperand.SetCorrectSize virtual method added
...
to be able to change the suffix according to the instruction
(FIADD word ptr w need a s as ATT suffix
wheras FILD word ptr w need a w suffix :( )
2000-04-04 13:48:44 +00:00
pierre
a7331ce0eb
* Object fields are simple offsets in TP/Delphi mode
2000-03-28 22:10:12 +00:00
pierre
33cc2a0a35
* correct the fixups for inlined assembler code
2000-03-16 15:10:25 +00:00
pierre
4177d64781
* fix for bug #848 (that still genrated wrong code)
...
+ better testing for variables used in assembler
(gives an error if variable is not directly reachable !)
2000-03-15 23:09:58 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
peter
e525797c51
* updated copyright to 2000
2000-01-07 01:14:18 +00:00
peter
8725fa32a1
* label are set to used so an error is given if used but not defined
1999-12-22 00:57:30 +00:00
florian
603de2a4bb
* 761 fixed
1999-12-17 10:43:34 +00:00
peter
0512ba80fb
+ ttype, tsymlist
1999-11-30 10:40:42 +00:00
pierre
62da9bd4c0
* Notes/hints changes
1999-11-17 17:04:58 +00:00
peter
23ca9de3b3
* esi_offset -> selfpointer_offset to be newcg compatible
...
* hcogegen -> cgbase fixes for newcg
1999-11-09 23:06:44 +00:00
peter
0887060ff2
* truncated log to 20 revs
1999-11-06 14:34:16 +00:00
peter
6b1ab5eb31
* procinfo is now a pointer
...
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
peter
05f2be0455
* better support for object fields and more error checks for
...
field accesses which create buggy code
1999-09-08 16:04:01 +00:00
florian
f7af47f31f
* bug #577 fixed
1999-09-04 20:29:11 +00:00
peter
e54801a2fe
* fixed crash with typedconst array
1999-08-27 14:37:50 +00:00
peter
ab8edb8970
* more reference types support
...
* arraydef size returns elementsize, also for multiple indexing array
1999-08-13 21:28:36 +00:00
florian
ca53eee67e
* renamed i386asm and i386base to cpuasm and cpubase
1999-08-04 00:22:34 +00:00
peter
ed8eb13d59
* moved bitmask constants to sets
...
* some other type/const renamings
1999-08-03 22:02:29 +00:00
peter
674e0cc879
* write .size also
1999-07-29 20:53:55 +00:00
pierre
5f05d07dcb
* previous wrong log corrected
1999-06-02 22:43:57 +00:00
pierre
35777a48a1
types.pas
1999-06-02 22:25:22 +00:00
peter
0b272f13c7
* removed oldasm
...
* plabel -> pasmlabel
* -a switches to source writing automaticly
* assembler readers OOPed
* asmsymbol automaticly external
* jumptables and other label fixes for asm readers
1999-05-27 19:43:55 +00:00
peter
bfed29ff8b
* NEWLAB for label as symbol
1999-05-21 13:54:38 +00:00
peter
38a4f1d577
* fixed error which was shown for all 32bit consts
1999-05-12 00:17:11 +00:00
peter
853a2aa8d9
* support for pointerdef
1999-05-11 16:27:23 +00:00
peter
1c96916943
* generic write_float and str_float
...
* fixed constant float conversions
1999-05-06 09:05:05 +00:00
peter
4841b4236c
* updated messages
1999-05-05 22:21:47 +00:00
peter
adda83dac6
* moved section names to systems
...
* fixed nasm,intel writer
1999-05-02 22:41:46 +00:00
peter
611da2d24e
* merged nasm compiler
...
* old asm moved to oldasm/
1999-05-01 13:23:57 +00:00
peter
9bbbfdecf9
* redesigned record offset parsing to support nested records
...
* normal compiler uses the redesigned createvarinstr()
1999-04-26 23:26:12 +00:00
peter
2bfdf91c5c
* assembler inlining working for ag386bin
1999-03-31 13:55:03 +00:00
peter
d0cb5a147a
* fixed bugs 212,222,225,227,229,231,233
1999-03-24 23:16:42 +00:00
pierre
f8395f4a48
* varsym refs incremented
1999-03-01 13:22:25 +00:00
peter
c8f444b65f
* ag386bin updates
...
+ coff writer
1999-02-25 21:02:16 +00:00
peter
bf9b5e3a54
* updates for ag386bin
1999-02-22 02:14:59 +00:00
peter
9b6f7409ae
* fixed local copies of value para's
1999-02-16 00:47:28 +00:00
pierre
b285b17fed
* bug with static vars in assembler readers
1999-01-27 13:04:11 +00:00
peter
1ace0dc9b8
* moved some tables from ra386*.pas -> i386.pas
...
+ start of coff writer
* renamed asmutils unit to rautils
1999-01-10 15:37:51 +00:00