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