Commit Graph

53394 Commits

Author SHA1 Message Date
nickysn
ef341e4b1c - removed useless 'far;' declaration
git-svn-id: trunk@38724 -
2018-04-10 13:21:48 +00:00
Mattias Gaertner
b21462d3b1 pastojs: fixed test vql on 32bit system
git-svn-id: trunk@38723 -
2018-04-10 08:54:09 +00:00
Mattias Gaertner
b780c20096 fcl-passrc: resolver: delphi mode: allow intfvar as classtype
git-svn-id: trunk@38722 -
2018-04-10 08:33:24 +00:00
Mattias Gaertner
e1ead17c77 pas2js: simplify
git-svn-id: trunk@38721 -
2018-04-09 22:36:10 +00:00
Mattias Gaertner
c17f030e34 pastojs: fixed a.call(typeinfo())
git-svn-id: trunk@38720 -
2018-04-09 22:34:12 +00:00
florian
5dda0f5c74 * patch by Pierre to fix warnings which prevent cross building
git-svn-id: trunk@38719 -
2018-04-09 19:01:02 +00:00
pierre
e7d724981c Replace $notes off/on by $push/$notes off/$pop to avoid getting note messages if notes are not on at start of unit compilation
git-svn-id: trunk@38718 -
2018-04-09 09:45:19 +00:00
florian
f08d3fdf8f * moved execution weight calculation into a separate pass, so the info is available already available before the code generation pass if needed
git-svn-id: trunk@38717 -
2018-04-08 20:51:27 +00:00
Jonas Maebe
cb7730a423 * fixed execution order of implicit finalization and class destructors: first
the latter, then the former

git-svn-id: trunk@38716 -
2018-04-08 15:41:00 +00:00
Mattias Gaertner
77cf535e21 pas2js: version 0.9.15
git-svn-id: trunk@38715 -
2018-04-08 15:37:03 +00:00
Mattias Gaertner
18fd5ae63d pastojs: fixed class interfaces when ancestor has more einterfaces
git-svn-id: trunk@38714 -
2018-04-08 14:59:46 +00:00
Mattias Gaertner
22fa27a70b fcl-passrc: resolver: sanity check
git-svn-id: trunk@38713 -
2018-04-08 14:59:04 +00:00
Mattias Gaertner
bb13e36c80 pas2js: docs: fixed typo
git-svn-id: trunk@38712 -
2018-04-08 13:05:14 +00:00
Mattias Gaertner
5140e1b022 pas2js: docs: interfaces JS
git-svn-id: trunk@38711 -
2018-04-08 12:59:12 +00:00
Mattias Gaertner
c2fe9080d6 pas2js: docs: guid
git-svn-id: trunk@38710 -
2018-04-08 12:20:58 +00:00
Mattias Gaertner
f6093dbae8 pas2js: 0.9.14
git-svn-id: trunk@38709 -
2018-04-08 12:05:55 +00:00
Mattias Gaertner
eb0992a79e pas2js: docs about class interfaces
git-svn-id: trunk@38708 -
2018-04-08 09:05:48 +00:00
Mattias Gaertner
b2d4ca52c2 pastojs: filer: ignore old modeswitch ignoreinterfaces
git-svn-id: trunk@38707 -
2018-04-08 09:04:44 +00:00
Mattias Gaertner
c5b82873d2 fcl-passrc: resolver: fixed scopedenums for anonymous set type
git-svn-id: trunk@38706 -
2018-04-08 07:33:54 +00:00
Mattias Gaertner
7111f2bfdd fcl-passrc: useanalyzer: added test for one-way dependency of class-interface to implementation method
git-svn-id: trunk@38705 -
2018-04-07 18:20:03 +00:00
Mattias Gaertner
93ce148b73 fcl-passrc: useanalyzer: typeinfo for interfaces
git-svn-id: trunk@38704 -
2018-04-06 18:20:11 +00:00
pierre
078ed0ec95 Fix range problems
git-svn-id: trunk@38703 -
2018-04-06 14:41:48 +00:00
Mattias Gaertner
1237e11765 pastojs: for s in arrayofstring
git-svn-id: trunk@38702 -
2018-04-06 13:34:17 +00:00
Mattias Gaertner
b64b45e26c fcl-passrc: resolver: fixed for s in arrayofstring
git-svn-id: trunk@38701 -
2018-04-06 13:34:03 +00:00
pierre
ef36525e4b Add missing 3.0.2 and 3.0.4 releases
git-svn-id: trunk@38700 -
2018-04-06 13:31:38 +00:00
Mattias Gaertner
abd1b66977 pastojs: removed modeswitch ignoreinterfaces
git-svn-id: trunk@38699 -
2018-04-06 11:03:19 +00:00
Mattias Gaertner
bebd127b91 fcl-passrc: removed modeswitch ignoreinterfaces
git-svn-id: trunk@38698 -
2018-04-06 11:03:09 +00:00
Mattias Gaertner
52b1649b8f pas2js: utility functions for com interfaces
git-svn-id: trunk@38697 -
2018-04-06 10:38:37 +00:00
Mattias Gaertner
0448e4edbc pastojs: com interfaces
git-svn-id: trunk@38696 -
2018-04-06 10:38:08 +00:00
Mattias Gaertner
835c1c8f1a fcl-passrc: useanalyzer: com interfaces
git-svn-id: trunk@38695 -
2018-04-06 10:37:45 +00:00
florian
254aa0e9e1 * consistent naming of lData field in NEWCPLINFO
git-svn-id: trunk@38694 -
2018-04-06 09:59:22 +00:00
pierre
d9c8d478b2 Restrict test to i8086 cpu
git-svn-id: trunk@38693 -
2018-04-06 07:40:21 +00:00
florian
bd27b7635b * also in case of constref make_not_regable with ra_addr_taken must be called, later on in pass_1 this happens anyways
* for in loops can generate temp. refs as loop counter, so when checking of the address of the for counter is taken, we have to check for a load node

git-svn-id: trunk@38692 -
2018-04-05 20:09:40 +00:00
nickysn
e1d0e7572e * i8086 TP7 compatibility fixes, related to obtaining procedure addresses:
o The @ and Addr() operators in TP or Delphi mode can now be applied to both
    near and far procedures and they always produce a CodePointer, regardless of
    the call model of the procedure.
  o Ofs() and Seg() can now also be applied to both near and far procedures.
  o The @ and Addr() operators in non-TP/Delphi modes, as well as the procedure
    name itself in TP/Delphi modes now can be applied to both near and far
    procedures and produce a near or a far procvar.

git-svn-id: trunk@38691 -
2018-04-05 15:09:12 +00:00
florian
42d6e81c33 * made message about subroutines not being inlined a note instead of a hint, see also #33515
git-svn-id: trunk@38690 -
2018-04-05 09:51:25 +00:00
florian
0fd0e356e1 + new flag ra_different_scope: used if a node tree is marked as non-regable if a variable is accessed from a different scope
git-svn-id: trunk@38689 -
2018-04-04 21:39:47 +00:00
florian
c59bd8c29a + calculate loop unrolling using node_count_weighted which takes care of nodes generating no code
* optimized unrolling calculation

git-svn-id: trunk@38688 -
2018-04-04 21:39:46 +00:00
florian
512328deee * include loop unrolling in -O3, as it is done carefully, it is beneficial on average
git-svn-id: trunk@38687 -
2018-04-04 21:39:44 +00:00
florian
fff6e0ecdb * unroll more aggressively
git-svn-id: trunk@38686 -
2018-04-04 21:39:42 +00:00
pierre
5368f1fbe9 Add handling of DelFiles
git-svn-id: trunk@38685 -
2018-04-04 21:27:36 +00:00
pierre
450f62efcc Move GetToken function to testu unit
git-svn-id: trunk@38684 -
2018-04-04 21:27:07 +00:00
pierre
33de492553 * Improve support in temporary directory.
+ CopyNeededFiles to copy additional files to temp directory.
  + TempFileList: New variable.
  * Cleanup: Use TempFileList to delete more file.
  + Add optional -Ssource_file_name directory.

git-svn-id: trunk@38683 -
2018-04-04 21:00:26 +00:00
nickysn
58ead31f49 * optimized ofs(proc) on i8086, so it only loads the offset in all memory models
git-svn-id: trunk@38682 -
2018-04-04 15:26:47 +00:00
nickysn
c7503ca291 + introduced tabstractprocdef.ofs_address_type - the address type, generated for
ofs()

git-svn-id: trunk@38681 -
2018-04-04 15:16:42 +00:00
nickysn
6929af07b7 + added flag tcnf_proc_2_procvar_get_offset_only
git-svn-id: trunk@38680 -
2018-04-04 14:48:12 +00:00
nickysn
99a1cf89b3 + print convnodeflags in printnodeinfo
git-svn-id: trunk@38679 -
2018-04-04 13:20:41 +00:00
nickysn
4a3a64d8f4 + print addrnodeflags in printnodeinfo
git-svn-id: trunk@38678 -
2018-04-04 12:48:52 +00:00
nickysn
dadd5568db + override set_labelsym_resultdef for i8086 and set a near pointer resultdef if
the anf_ofs flag is set

git-svn-id: trunk@38677 -
2018-04-04 12:34:21 +00:00
nickysn
109fb279f6 * moved the initialization of the resultdef for labelsyms in the typecheckpass
of taddrnode to a virtual method taddrnode.set_labelsym_resultdef. No
  functional changes.

git-svn-id: trunk@38676 -
2018-04-04 12:09:15 +00:00
florian
c46cbc8411 * do not issue a hint of compiler procs are not inlined, resolves #33515
git-svn-id: trunk@38675 -
2018-04-03 21:39:47 +00:00