Commit Graph

61660 Commits

Author SHA1 Message Date
nickysn
ec7fbcb271 * override the IN node for WebAssembly and avoid generating jump tables for the
IN nodes on that target

git-svn-id: branches/wasm@48176 -
2021-01-18 21:37:39 +00:00
nickysn
374882455b - disallow (i.e. generate internal errors) the use of a_cmp_*_label functions
for the WebAssembly target, because it doesn't support jumps to labels
* the previous implementation of a_cmp_*_label was a hack, that ignored the
  label parameter. These functions are now moved to the newly introduced
  a_cmp_*_stack functions.

git-svn-id: branches/wasm@48175 -
2021-01-18 21:32:35 +00:00
florian
16f201292c + remove try ... finally statements if the finally block is empty
git-svn-id: trunk@48174 -
2021-01-18 21:29:52 +00:00
nickysn
c781e03edf + implemented WebAssembly code generation for case statements
git-svn-id: branches/wasm@48173 -
2021-01-18 20:57:05 +00:00
nickysn
039e2f20b7 + override the case node for WASM. The actual code generation isn't implemented yet.
git-svn-id: branches/wasm@48172 -
2021-01-18 17:43:01 +00:00
michael
92c3aedac4 * Fix typo
git-svn-id: trunk@48171 -
2021-01-18 15:30:19 +00:00
michael
005448f305 * Some restructuring by Andrey, add fallback link
git-svn-id: trunk@48170 -
2021-01-18 15:27:58 +00:00
michael
38b6bb7385 * Patch from Andrey Sobol to improve inheritance tree
git-svn-id: trunk@48169 -
2021-01-18 13:23:52 +00:00
florian
d4ad618a70 * similiar fix to r48167 for OptPass1SXTH
git-svn-id: trunk@48168 -
2021-01-17 19:01:14 +00:00
florian
14ddc59edb * arm*: fix SxtbAndImm2Sxtb (now SxtbAndImm2Uxtb) optimization as proposed by Pierre and Gareth
git-svn-id: trunk@48167 -
2021-01-17 10:12:55 +00:00
florian
ecc3ce64ea * x86: some fixes to enable 8 and 16 bit operations
git-svn-id: trunk@48166 -
2021-01-16 22:46:25 +00:00
michael
4c22d66aac * Fix compilation
git-svn-id: trunk@48165 -
2021-01-16 16:55:48 +00:00
florian
8618a3b21f * simplify tx8664shlshrnode.pass_generate_code, it should not mess with the result type, this
is a matter of the type check pass

git-svn-id: trunk@48164 -
2021-01-16 15:38:29 +00:00
michael
b30d54b064 * Patches from Andrey Sobol, more control over warnings, improve class tree and resolving
git-svn-id: trunk@48163 -
2021-01-16 15:05:44 +00:00
florian
707bce74d7 * patch by J. Gareth Moreton: refactor OptPass2Jcc, resolves #38343
git-svn-id: trunk@48162 -
2021-01-15 21:24:44 +00:00
nickysn
a69f7094dd + override get_address_type for the i8086 code generator and return near pointer
types, because that's what's needed for the i8086 address calculations in
  update_reference_reg_mul (the indexing operation is performed on the offset
  only)

git-svn-id: branches/wasm@48161 -
2021-01-15 15:47:38 +00:00
nickysn
34d3d39dbe + introduced the tcgvecnode.get_address_type virtual method and use its result,
instead of voidpointertype in tcgvecnode.update_reference_reg_mul and
  .update_reference_reg_packed

git-svn-id: branches/wasm@48160 -
2021-01-15 15:29:58 +00:00
nickysn
2ee61e003d * update revision.inc
git-svn-id: branches/wasm@48159 -
2021-01-15 15:28:47 +00:00
nickysn
e0a1ce86fd * synchronized with trunk
git-svn-id: branches/wasm@48158 -
2021-01-15 01:05:37 +00:00
pierre
50a13b4df4 Function GetDefaultLibGCCDir adapted to case of Defaults not assigned (required for fpcmkcfg utility) reported by Andrew Kurushin
git-svn-id: trunk@48157 -
2021-01-14 22:59:16 +00:00
florian
9003114a8f + support R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX
git-svn-id: trunk@48156 -
2021-01-14 21:36:12 +00:00
Mattias Gaertner
c21e777c85 pastojs: fixed freeing temp intf var if nil
git-svn-id: trunk@48155 -
2021-01-14 12:30:57 +00:00
florian
4e61867ce1 * modified (use IsManagedType to check if a for loop can be used for copying) patch by Bart Broersma to fix IncreaseCapacity of TQueue, resolves #38306
git-svn-id: trunk@48154 -
2021-01-13 21:24:50 +00:00
nickysn
b876c69bea * synchronized with trunk
git-svn-id: branches/wasm@48153 -
2021-01-13 11:23:19 +00:00
pierre
1fa5edd34e Try to avoid use of native libgcc directory when cross-compiling.
Add FSourceCPU, FSourceOS, FCompilerDate FFullCompilerVersion fields to TCustomDefaults class.
  Set these new fields by also parsing FPC -iDWSPSO output.
  Use these fields to try to correctly guess if native gcc should be used to
  try to find libgcc directory, or only $BINUTILSPREFIX prepended gcc.

git-svn-id: trunk@48152 -
2021-01-13 10:07:37 +00:00
florian
344aadebb9 * avoid widening of shl operations, this is not necessary for them either
git-svn-id: trunk@48150 -
2021-01-12 21:45:38 +00:00
nickysn
21a33f22e9 * synchronized with trunk
git-svn-id: branches/wasm@48141 -
2021-01-11 23:02:35 +00:00
pierre
4fd1c9ec42 Correct check of stringtype inside use_tag_prefix function
git-svn-id: trunk@48140 -
2021-01-11 22:17:09 +00:00
Mattias Gaertner
000de377b9 fcl-passrc: fixed compile with pas2js
git-svn-id: trunk@48139 -
2021-01-11 22:05:20 +00:00
Mattias Gaertner
2833bf6710 fcl-passrc: fixed mem leak
git-svn-id: trunk@48138 -
2021-01-11 22:04:22 +00:00
Mattias Gaertner
05d916a652 pastojs: clean up
git-svn-id: trunk@48137 -
2021-01-11 22:03:40 +00:00
florian
a286ad9d77 * do not extend 8 bit return values to 32 bit when loading them into eax,
this is not required by the api, neither does e.g. clang it

git-svn-id: trunk@48136 -
2021-01-11 21:47:32 +00:00
nickysn
8b4aceea50 * synchronized with trunk
git-svn-id: branches/wasm@48134 -
2021-01-11 07:01:01 +00:00
Mattias Gaertner
22864b47e4 pastojs: record complex only for records with class vars
git-svn-id: trunk@48131 -
2021-01-10 22:56:39 +00:00
Jonas Maebe
5c2303a76b * add parameter cleanup nodes to the call cleanup block (mantis #38316)
git-svn-id: trunk@48130 -
2021-01-10 15:47:27 +00:00
pierre
b7c519de81 Add check for bug fix in bug report 38339
git-svn-id: trunk@48129 -
2021-01-10 14:43:22 +00:00
Jonas Maebe
b1a1e6c510 + test for mantis #38337, already fixed
git-svn-id: trunk@48127 -
2021-01-10 14:09:22 +00:00
svenbarth
217e9ac5a5 * regenerate msg*.inc files
git-svn-id: trunk@48126 -
2021-01-10 10:55:26 +00:00
svenbarth
469959d9b5 * clear up message that a global generic references a static symbol a bit
git-svn-id: trunk@48125 -
2021-01-10 10:55:18 +00:00
florian
eb81b981cd * patch by J. Gareth Moreton to fix MovzxCmp2CmpMovzx, resolves #38339
git-svn-id: trunk@48124 -
2021-01-10 10:23:40 +00:00
florian
227bd3e904 * simplified code for JccAdd2SetccAdd optimization
git-svn-id: trunk@48122 -
2021-01-09 18:21:49 +00:00
svenbarth
efe6b32638 + add declaration of FpSchedGetAffinity when the Linux target is compiled with FPC_USE_LIBC
git-svn-id: trunk@48121 -
2021-01-09 15:58:18 +00:00
svenbarth
359bb64aed * if the Linux target is compiled with FPC_USE_LIBC the initialization of TLS is not required (according to one comment by Florian), so disable all related code in that case (as for example the syscall numbers are not available then)
git-svn-id: trunk@48120 -
2021-01-09 15:58:13 +00:00
Mattias Gaertner
c99a97cc55 pastojs: started library
git-svn-id: trunk@48119 -
2021-01-09 13:57:13 +00:00
Mattias Gaertner
3b0df17bd1 fcl-passrc: resolver: check library export function overload
git-svn-id: trunk@48118 -
2021-01-09 13:56:28 +00:00
florian
f42f62565b * patch by J. Gareth Moreton to resolve bug introduced in the first patch, resolves #38294
git-svn-id: trunk@48117 -
2021-01-08 22:29:24 +00:00
florian
4e9b42344e + AddLea2Lea optimization
* improved LeaLea2Lea

git-svn-id: trunk@48116 -
2021-01-08 22:22:56 +00:00
florian
964dc6f6f1 * avoid div by zero in TView.CalcBounds.GrowI, resolves #30922
git-svn-id: trunk@48115 -
2021-01-08 16:33:05 +00:00
florian
7f775abb6d * throw a proper error if a contructur has a type parameter in delphi mode, resolves #37217
git-svn-id: trunk@48113 -
2021-01-08 14:19:19 +00:00
pierre
0061301dbb Fix compilation with -dALLOCREGDEBUG
git-svn-id: trunk@48112 -
2021-01-08 11:13:43 +00:00