Commit Graph

53247 Commits

Author SHA1 Message Date
Mattias Gaertner
288afbe3b4 pastojs: implemented string:=interface
git-svn-id: trunk@38727 -
2018-04-10 14:11:13 +00:00
nickysn
dcdd498524 + allow far procedures and functions in the tiny, small and compact i8086 memory
models. Even though, they generate less efficient code, they are useful when
  interacting with external APIs (e.g. declaring callbacks for the Win16 API).

git-svn-id: trunk@38726 -
2018-04-10 13:26:14 +00:00
nickysn
55386ba547 + show whether a procedure or function is far in tprocdef.customprocname
git-svn-id: trunk@38725 -
2018-04-10 13:23:06 +00:00
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