Commit Graph

142 Commits

Author SHA1 Message Date
peter
658c46b903 * remove tdictionary and tindexarray
* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled

git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
daniel
068c0f7952 * Cleaner implementation of pointer index to open array, codegen changes
no longer necessary and therefore reverted.

git-svn-id: trunk@5037 -
2006-10-27 20:57:51 +00:00
daniel
2450f5a778 + First working concept of open_array_procedure(Pbyte_var[0..9]);
git-svn-id: trunk@5028 -
2006-10-26 20:30:16 +00:00
Jonas Maebe
25059eb03d * only potentially change size of vecn results in case of packed arrays
git-svn-id: trunk@4681 -
2006-09-22 09:24:42 +00:00
Jonas Maebe
6be389e954 * fixed bug in r4674
git-svn-id: trunk@4678 -
2006-09-21 20:34:18 +00:00
Jonas Maebe
cc6a91a9bc * fixed packed arrays of enums in case of packenum 2/4
git-svn-id: trunk@4674 -
2006-09-21 14:46:32 +00:00
Jonas Maebe
6997121c18 * also perform "SSA" for certain loads (currently derefn, righthand side of
assignmentn and callparan), reduces number of long lived conflicts.
    Mainly helpful on register-starved cpus such as i386.

git-svn-id: trunk@4606 -
2006-09-10 16:21:50 +00:00
Jonas Maebe
1f42ee201b + support for bitpacked records, except for:
* rtti
    * typed constants

git-svn-id: trunk@4489 -
2006-08-23 15:44:13 +00:00
Jonas Maebe
1ab3d81541 * also use LOC_CSUBSETREF
* set expectloc properly for packed arrays

git-svn-id: trunk@4480 -
2006-08-20 19:28:10 +00:00
florian
8102053adc * fixed compilation on 64 bit CPUs
git-svn-id: trunk@4464 -
2006-08-20 09:25:37 +00:00
Jonas Maebe
eccbc78e04 + support for bitpacked arrays:
+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays

git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
Jonas Maebe
c25aba7592 * cleaned up subsetreg support (put everything in a record)
* prepared support for elements with arbitrary bit length (as opposed
    to a multiple of 8)

git-svn-id: trunk@4324 -
2006-08-01 20:39:53 +00:00
Jonas Maebe
df973fa1de * fixed issue #6977 (add regvars occupied by the invisible high parameter
of "open array" and "array of const" parameters to the used regvars
    for their array accesses if range checking is turned on)

git-svn-id: trunk@3914 -
2006-06-21 18:24:01 +00:00
Jonas Maebe
84d1fc929f * properly set regvarability of parameters and local variables of inlined
functions
  * fixed setting of expectloc for fields of regvar'ed records

git-svn-id: trunk@3607 -
2006-05-20 23:37:55 +00:00
Jonas Maebe
e344ee3cd7 + support for register variables which contain records
git-svn-id: trunk@3580 -
2006-05-19 15:49:07 +00:00
florian
5e4ff16934 * access packed records with unaligned data accesses
git-svn-id: trunk@3365 -
2006-04-29 17:44:27 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
Jonas Maebe
2e41b63710 * support subscripting record function results on ABI's that return
(some) records in registers (+ internalerror if unsupported
    record location). Fixes "make all" in top dir on darwin/x86.

git-svn-id: trunk@2973 -
2006-03-19 20:01:11 +00:00
peter
b7fe6797bf Merged revisions 2921-2922,2925 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines

  * pass ObjectWriter to ObjectOuput

........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines

  * refactor asmdata

........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines

  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit

........

git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
b6e35a200e * rewrite of optimizer options
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
e668ef560a * fixed bug in r2738
git-svn-id: trunk@2743 -
2006-03-04 21:37:19 +00:00
Jonas Maebe
b063d47aa1 * fixed web bug #4872
git-svn-id: trunk@2738 -
2006-03-04 20:04:35 +00:00
Jonas Maebe
1b8baa3bce * set resultloc for interfacecom in subscriptn
git-svn-id: trunk@2537 -
2006-02-12 15:38:56 +00:00
Jonas Maebe
9f8753c6c0 * fixed web bug #4669 (usage of location.loc instead of expectloc)
git-svn-id: trunk@2236 -
2006-01-08 21:11:04 +00:00
Jonas Maebe
ea89d8a881 * don't move addresses in a LOC_CREGISTER to another register for
derefnodes

git-svn-id: trunk@2190 -
2006-01-05 20:46:20 +00:00
peter
95879fe8a7 * basic support for generic classes
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +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
2f0fdd1847 * cleaner fix for tb0496 (r1185)
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +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
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
1f8d6aa678 * psizeint($1234)^ for generic cg fixed
git-svn-id: trunk@570 -
2005-07-03 15:08:04 +00:00
florian
355aaa69c8 + before calling a helper procedure, all register classes are now saved, this patch is subject to being merged back
git-svn-id: trunk@201 -
2005-06-05 08:12:33 +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
florian
e33bf907d8 * fixed previous commit 2005-04-06 19:39:04 +00:00
florian
1f4e15705c * hidden parameters can be put now in registers as well 2005-04-06 19:09:39 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
2b6456fe16 * procvar handling for tp procvar mode fixed
* proc to procvar moved from addrnode to typeconvnode
  * inlininginfo is now allocated only for inline routines that
    can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
peter
9b00c7832e * support > 32bit accesses for x86_64
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
peter
2aceb6f856 * no checkpointer code for dynarr to openarr 2004-11-01 17:15:47 +00:00
peter
a2cbf27e96 * -Or fix for absolute 2004-11-01 15:31:57 +00:00
peter
e7459f5466 * heap and heapsize removed
* checkpointer fixes
2004-10-25 15:38:41 +00:00
peter
65c3ba277c * ungetregister is now only used for cpuregisters, renamed to
ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
michael
8affe37ee1 + Fixed range check for non-constant indexes in strings 2004-08-02 09:15:03 +00:00
peter
b3e3030e6f * remove maxlen field from ansistring/widestrings 2004-07-12 17:58:19 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00