Commit Graph

52898 Commits

Author SHA1 Message Date
Mattias Gaertner
9bb7ad3ac6 pastojs: array of proctype, proctype to jsvalue argument
git-svn-id: trunk@38074 -
2018-01-28 21:47:28 +00:00
Mattias Gaertner
ac18dc0321 fcl-passrc: resolver: store rrfNoImplicitCallWithoutParams, store flags for set params
git-svn-id: trunk@38073 -
2018-01-28 21:46:12 +00:00
florian
796eb542be * LDD/STD need always an offset, resolves #33086
git-svn-id: trunk@38072 -
2018-01-28 21:06:13 +00:00
florian
92e616e30c * error happens only with optimization
git-svn-id: trunk@38071 -
2018-01-28 14:41:57 +00:00
florian
810acd82b2 * patch by J. Gareth Moreton that makes some improvements to the Peephole Optimizer for x86 and x86-64 code, as well as some cleanup with formatting, code syntax consistency, and debug messages.
- xorq %reg,%reg (identical registers) is now changed to xorl %reg,%reg if doing so removes the REX prefix.
  - movw %bx,%ax; andl $0xffff,%eax, for example, is now changed to movzwl %bx,%eax as long as a conditional operation doesn't follow 'and' (checks to see if the CPU flags are in use).
  - movzbq and movzwq get optimised to movzbl and movzwl respectively if doing so removes the REX prefix.
  - Removal of optimisation code that zero-extends from 32-bit to 64-bit, because there isn't actually a valid combination of opcodes for MOVZX that allows that (for registers,
    just use  MOV). This is not the case with MOVSX.
  - movq is now optimised to movl even if the CPU flags are in use (this stops mov %reg,0 from being optimised to xor %reg,%reg if doing so breaks an algorithm that relies on them).
  - Fixed typo in peephole message regarding movq to movl (it said movd instead).
  - Made the peephole debug messages more consistent in formatting, some of which now have more detail.
* small fixes of the patch

git-svn-id: trunk@38070 -
2018-01-28 14:41:54 +00:00
florian
10ea652493 * fix for #32576
+ test case

git-svn-id: trunk@38069 -
2018-01-28 13:26:49 +00:00
florian
93353d8d79 * typo
git-svn-id: trunk@38068 -
2018-01-28 13:26:47 +00:00
florian
52510ea933 + TUsedRegs.Dump
git-svn-id: trunk@38067 -
2018-01-28 13:26:45 +00:00
michael
afa2b90a5d * Fix bug ID #33080
git-svn-id: trunk@38066 -
2018-01-28 10:38:55 +00:00
michael
5a9488b1fc * Add test for clearfields
git-svn-id: trunk@38065 -
2018-01-28 10:16:53 +00:00
michael
ecff685b80 * Fix bug ID #33081, dataset should be in edit mode for calling clearfields
git-svn-id: trunk@38064 -
2018-01-28 10:00:19 +00:00
michael
551d3eda26 * Fix bug #33078, missing MatchText
git-svn-id: trunk@38063 -
2018-01-28 09:32:04 +00:00
michael
a94ebf008c * Fix bug #33079, missing IndexText
git-svn-id: trunk@38062 -
2018-01-28 09:29:30 +00:00
Mattias Gaertner
517e2e3218 fcl-passrc: parser: check semicolon after if then
git-svn-id: trunk@38061 -
2018-01-27 16:25:57 +00:00
svenbarth
9240e0c2e6 * fix 32-bit * 32-bit => 64-bit for Coldfire
git-svn-id: trunk@38060 -
2018-01-27 14:26:18 +00:00
Mattias Gaertner
898b566837 pas2js:: rtl.js: add Math.trunc only if used
git-svn-id: trunk@38059 -
2018-01-27 14:15:36 +00:00
Mattias Gaertner
b0367d4430 pas2js: fixed skipping #else
git-svn-id: trunk@38058 -
2018-01-27 14:12:43 +00:00
Mattias Gaertner
eb3ba71b98 pastojs: forbid external class const expr
git-svn-id: trunk@38057 -
2018-01-27 11:35:30 +00:00
Mattias Gaertner
b7a373b132 pastojs: forbid external class const expr
git-svn-id: trunk@38056 -
2018-01-27 11:35:04 +00:00
Mattias Gaertner
8ffcfc4552 fcl-passrc: resolver: fixed checking class vars and class types
git-svn-id: trunk@38055 -
2018-01-27 11:34:25 +00:00
svenbarth
8522474457 * correctly allocate the space for the 5 registers that are stored
git-svn-id: trunk@38054 -
2018-01-26 21:48:07 +00:00
svenbarth
ea193bc993 * enable explicit Pointer overloads of Interlocked* functions for M68k as that has a calling convention where the passing of Pointer values differs from ordinal values (address vs. int registers). Fixes e.g. usage of the Classes unit
git-svn-id: trunk@38053 -
2018-01-26 21:37:58 +00:00
svenbarth
e09ec0e36b + add ability to have explicitely implemented Pointer overloads of the Interlocked* routines instead of forwarding them to the ones with suitable size.
git-svn-id: trunk@38052 -
2018-01-26 21:36:35 +00:00
michael
0ef3fc2f29 * Math.trunc polyfill
git-svn-id: trunk@38051 -
2018-01-26 20:33:42 +00:00
Mattias Gaertner
2f3fd73c0d pastojs: bark on enum const
git-svn-id: trunk@38050 -
2018-01-26 19:27:27 +00:00
Mattias Gaertner
adbb998377 pastojs: started filer
git-svn-id: trunk@38049 -
2018-01-26 19:20:25 +00:00
Mattias Gaertner
ae5e851f7f pastojs: fixed compile on Windows
git-svn-id: trunk@38048 -
2018-01-26 15:32:02 +00:00
Mattias Gaertner
9d6c109303 pas2js: check duplicate files
git-svn-id: trunk@38047 -
2018-01-26 08:42:31 +00:00
Mattias Gaertner
bd37d43f1c pas2js: search case insensitive by default
git-svn-id: trunk@38046 -
2018-01-25 21:36:01 +00:00
marco
c98214c348 * mantis #33075, EGLINT always 32-bit
git-svn-id: trunk@38045 -
2018-01-25 20:53:35 +00:00
svenbarth
bd57af5b19 * as Coldfire does not support ADD.W save the (original) lower word and restore it after D0 is swapped back (I hope the algorithm still works then O.o)
git-svn-id: trunk@38044 -
2018-01-25 20:02:16 +00:00
svenbarth
b7cdec3a2a * Coldfire does not support EXG, so do it the old fashioned way (but before restoring the stored registers)
git-svn-id: trunk@38043 -
2018-01-25 19:59:50 +00:00
svenbarth
9822374680 * Coldfire does not support MOVEM together with pre-decrement or post-increment, so abuse TST for that which is only a single instruction word
git-svn-id: trunk@38042 -
2018-01-25 19:58:59 +00:00
svenbarth
00141749d5 * Coldfire does not support sub.w, so use sub.l instead for that CPU
git-svn-id: trunk@38041 -
2018-01-25 19:56:28 +00:00
Mattias Gaertner
e2d23ea70e pas2js: json output: fixed error messages
git-svn-id: trunk@38040 -
2018-01-25 17:53:13 +00:00
Mattias Gaertner
ade2779f93 pas2js: doc about -JmXSSIHeader
git-svn-id: trunk@38039 -
2018-01-25 14:17:03 +00:00
Mattias Gaertner
57f3e4d1d6 pastojs: resolver: funcresult[]:=
git-svn-id: trunk@38038 -
2018-01-25 14:16:32 +00:00
Mattias Gaertner
b6516e053a fcl-passrc: resolver: funcresult[]:=
git-svn-id: trunk@38037 -
2018-01-25 14:16:21 +00:00
michael
7d355ffffc call rtl function cloneset with fully qualified name
git-svn-id: trunk@38036 -
2018-01-25 13:58:39 +00:00
michael
a834444cc0 * Add JSON output encoding of messages
git-svn-id: trunk@38035 -
2018-01-25 13:44:07 +00:00
Mattias Gaertner
ef7d13d112 pas2js: fixed srcmap header
git-svn-id: trunk@38033 -
2018-01-25 10:42:23 +00:00
Mattias Gaertner
0950ac19ff pastojs: char(int)
git-svn-id: trunk@38032 -
2018-01-25 10:35:54 +00:00
Mattias Gaertner
57010c65df fcl-passrc: resolver: char(int)
git-svn-id: trunk@38031 -
2018-01-25 10:35:41 +00:00
Mattias Gaertner
8b24fa81d4 pastojs: ignore proc modifier inline
git-svn-id: trunk@38030 -
2018-01-25 09:12:14 +00:00
Mattias Gaertner
c98c70548a fcl-js: srcmap: disable safety header by default, because not supported by Firefox
git-svn-id: trunk@38029 -
2018-01-25 09:06:54 +00:00
Mattias Gaertner
eebfb65131 pas2js: added option -Jmxssiheader
git-svn-id: trunk@38028 -
2018-01-25 09:01:57 +00:00
Mattias Gaertner
535b672029 pastojs: fixed reference of ancestor member in nested proc
git-svn-id: trunk@38027 -
2018-01-25 00:03:52 +00:00
Mattias Gaertner
eb5990882e pastojs: version 0.8.45
git-svn-id: trunk@38026 -
2018-01-23 22:27:11 +00:00
Mattias Gaertner
b028dcdce1 pastojs: fixed skipping class interface
git-svn-id: trunk@38025 -
2018-01-23 22:23:00 +00:00
Mattias Gaertner
94f91cd5a8 fcl-passrc: useanalyzer: skip class interface
git-svn-id: trunk@38024 -
2018-01-23 22:22:29 +00:00