Commit Graph

57558 Commits

Author SHA1 Message Date
florian
3889529e45 * unified internalerror, resolves #36378
git-svn-id: trunk@43610 -
2019-11-29 21:06:12 +00:00
pierre
fb33da5f41 Change parameter type to tcgint for is_imm12 and is_lui_imm functions to avoid range check errors
git-svn-id: trunk@43609 -
2019-11-29 10:31:31 +00:00
marco
4715c94789 * set enum size to 4 only after jedi.inc that has statement
git-svn-id: trunk@43608 -
2019-11-29 09:59:24 +00:00
pierre
7405ae2758 Fix trv32notnode, by using same code as for riscv64 CPU
git-svn-id: trunk@43607 -
2019-11-28 22:34:04 +00:00
michael
4d0b049f4e * Less errors when connection is broken (bug ID 36373)
git-svn-id: trunk@43605 -
2019-11-28 16:19:30 +00:00
pierre
3db08d28e9 Set default stack size for i8086-embedded target: 16384 for far data model, and 2048 for other memory models
git-svn-id: trunk@43604 -
2019-11-28 14:50:55 +00:00
pierre
47b9ef4dc2 Disable ucomplex and matrix units for i8086-embedded target, because no fpu is installed in RTL by default
git-svn-id: trunk@43603 -
2019-11-28 13:47:47 +00:00
ondrej
c7a8267d91 fcl-db: ODBC: allow NULL parameters (TParam.Value := Null sets type to ftUnknown)
git-svn-id: trunk@43602 -
2019-11-28 12:59:13 +00:00
pierre
a9bb9f7310 Add '.module nomips16' at assembly entry for mips/mipsel unless -a5 option is used
git-svn-id: trunk@43600 -
2019-11-27 22:56:35 +00:00
pierre
ba73f7376f Also accept -a5 for older binutils for mips and mpisel cpus
git-svn-id: trunk@43599 -
2019-11-27 22:54:47 +00:00
pierre
01fbad64b7 Use defined(aarch64) instead of defined(cpuaarch64) for FPC_HAS_INTERNAL_ABS_INT64
git-svn-id: trunk@43598 -
2019-11-27 22:15:23 +00:00
florian
7000d82dcd * do not convert cmp 0,... into test ...,... before the post pass of the peephole optimizer
as this conversion might result in missing further optimizer opportunities

git-svn-id: trunk@43596 -
2019-11-26 22:09:34 +00:00
florian
7e6eeebdf0 o patch by J. Gareth Moreton, seeks to improve maintainability, safety and efficiency
in the peephole optimizer by slightly modifying some function headers based
    on their intended purpose, resolves #36353
    * Non-virtual methods and class methods that don't need to access any fields from
      the current object are now static methods, thus removing the hidden "Self"
      parameter and reducing overhead. This includes a large number of
      frequently-used functions such as SkipEntryExitMarker and SuperRegistersEqual.
    * GetNextInstruction, GetLastInstruction, SkipEntryExitMarker and
      SkipLabels have had their 'var' parameter changed to an 'out' parameter because
      they shouldn't depend on its input value. This will cause the compiler to throw warnings
      if you start using the value without initialising it first, and may open up optimisation
      opportunities in the future (e.g. storing written values in a temporary register
      and only writing it to the actual variable when the routine exits).

git-svn-id: trunk@43595 -
2019-11-26 22:09:33 +00:00
Jonas Maebe
5800ac6213 * fix conversion from Objective-C class/protocol to tvarrec (store in
vPointer) (mantis #36362)

git-svn-id: trunk@43594 -
2019-11-26 21:24:56 +00:00
florian
cf0716123c * avoid overflow error
git-svn-id: trunk@43593 -
2019-11-26 19:39:04 +00:00
florian
af107ca8fe o patch by J. Gareth Moreton, resolves #36355
+ This patch serves to extend the JMP -> RET optimisation in OptPass2JMP by also doing the same
      for JMP -> MOV/RET, since there are often cases where the result (e.g. EAX) is set just
      prior to the function exiting.
    * RemoveDeadCodeAfterJump will now drop out if it detects SEH information -
      this stops exception information from being stripped if it is called on the final RET instruction.

git-svn-id: trunk@43592 -
2019-11-25 21:15:41 +00:00
svenbarth
d98e551882 + add a generic variant of TValue.IsType
* extended test

git-svn-id: trunk@43591 -
2019-11-25 21:13:37 +00:00
florian
fb4b1cbf35 * warn only in delphi mode if an explicit enumeration value exceeds the range, relaxes r43191
git-svn-id: trunk@43590 -
2019-11-25 20:58:20 +00:00
florian
3edc0560b0 * patch by Benjamin Rosseaux: TEvent.WaitFor on *nix uses Monotonic Clock now
git-svn-id: trunk@43589 -
2019-11-25 20:58:18 +00:00
svenbarth
97eefb6ac3 - the error recovery handling is no longer required
git-svn-id: trunk@43588 -
2019-11-25 20:28:29 +00:00
svenbarth
5b71ba2a9b * treat a missing genericdef with no symname set as an internal error
git-svn-id: trunk@43587 -
2019-11-25 20:28:26 +00:00
svenbarth
ef6c9e930b * correctly handle the genericdef being a procdef, otherwise no code will be generated (and no error either :/ )
+ added test

git-svn-id: trunk@43586 -
2019-11-25 20:28:23 +00:00
michael
6a36bec296 * Better explanation of connection
git-svn-id: trunk@43585 -
2019-11-25 14:24:38 +00:00
michael
bcee247240 * Simple, read-only example, no authentication
git-svn-id: trunk@43584 -
2019-11-25 14:14:19 +00:00
Jonas Maebe
0802edb710 * fix Linux/i386 and Win32 after r43578
git-svn-id: trunk@43583 -
2019-11-25 07:55:57 +00:00
svenbarth
be99031570 * rework checking for compiler files in .gitignore: ignore all ppc* files in the compiler directories except those with known extensions (*.lpi and *.pas, though for the later there currently is none)
git-svn-id: trunk@43582 -
2019-11-24 21:52:22 +00:00
svenbarth
abc3fd6f8d + add some more extensions to .gitignore
git-svn-id: trunk@43581 -
2019-11-24 21:52:19 +00:00
Jonas Maebe
ec227bb759 * fixed safecall for non-LLVM after r43578
git-svn-id: trunk@43580 -
2019-11-24 21:26:22 +00:00
florian
c6116258fd o patch by J. Gareth Moreton:
* adds an extra optimisation to "PostPeepholeOptMov" in compiler/x86/aoptx86.pas:
      If the instruction "MOV REG, -1" (Intel notation) is found, where REG is either
      a 32- or 64-bit register, it is changed to "OR REG, -1" instead.
      The effect is the same and takes exactly the same speed to execute, but the encoding is much smaller.
      As it cause false data dependencies, it is only applied in -Os mode

      For 16-bit registers, only AX is optimised this way because it has its own encoding for OR that takes fewer bytes.

git-svn-id: trunk@43579 -
2019-11-24 20:26:02 +00:00
Jonas Maebe
e775ecdc43 * cleaned up safecall support: use a hidden localvarsym instead of result
register hacking
   o this also allowed fixing/adding safecall support for LLVM

git-svn-id: trunk@43578 -
2019-11-24 20:23:22 +00:00
florian
acdff47554 + optimize integer expressions like 2*x*4; which were not found by the node simplifier yet
git-svn-id: trunk@43577 -
2019-11-24 20:21:33 +00:00
florian
94b728005d * more RemoveCurrentP usage
git-svn-id: trunk@43576 -
2019-11-24 19:51:04 +00:00
florian
9e307f5c3a - removed code not used for years
git-svn-id: trunk@43575 -
2019-11-24 19:50:27 +00:00
florian
d444f750f9 * factored out TX86AsmOptimizer.OptPass1Cmp
* fixed it
  * activated it for x86-64

git-svn-id: trunk@43574 -
2019-11-24 16:33:50 +00:00
florian
dea1855126 o patch by J. Gareth Moreton, resolves #36352:
* The supplied patch cleans up some vestigial code from the i386 peephole
      optimizer that has since been superseded by the jump optimisations over
      at #36271.
    * The PrePeepholeOptsCPU method has had a minor restructuring to better
      handle the rare case where InsContainsSegRef() returns True and
      p becomes something that is no longer an instruction (it ultimately
      removes a conditonal check and some overhead from repeated function calls).

git-svn-id: trunk@43573 -
2019-11-24 16:12:02 +00:00
florian
030d376bac + .gitignore (for git mirrors), based on proposal by Kevin Lyda, resolves #35597
git-svn-id: trunk@43572 -
2019-11-24 16:05:23 +00:00
florian
bdd36d20ac * patch by Alfred: remove superfluous linker script entry, resolves #36345
git-svn-id: trunk@43570 -
2019-11-24 12:16:29 +00:00
svenbarth
39f4b97ea5 + add test for a problem reported by Michael van Canneyt which is fixed by the previous revision
git-svn-id: trunk@43569 -
2019-11-24 00:04:35 +00:00
svenbarth
1abc9c1fe7 * when specializing a routine all nested specializations must go to the para- or localsymtable as otherwise the symbol can't be found to be registered
git-svn-id: trunk@43568 -
2019-11-24 00:04:31 +00:00
svenbarth
6edf6cad2c * also check for Nil symtables in tsymtable.includeoption
git-svn-id: trunk@43567 -
2019-11-24 00:04:27 +00:00
svenbarth
d79e2ee9da * also store, reset and restore the current module's procinfo
git-svn-id: trunk@43566 -
2019-11-24 00:04:23 +00:00
pierre
c882828fd0 Minimalist change to avoid Invalid Typecast error on class when compiled with '-CriotR -O2' for i386-go32v2 target
git-svn-id: trunk@43565 -
2019-11-23 22:44:30 +00:00
michael
f7d6192905 * Show --stop-on-parser-error in help
git-svn-id: trunk@43564 -
2019-11-23 13:40:49 +00:00
michael
77103fe7f2 * Report error with correct exit code
git-svn-id: trunk@43563 -
2019-11-23 13:34:45 +00:00
michael
a23ed797e6 * Fix bug ID #0036335: console pops up when getting compiler info
git-svn-id: trunk@43562 -
2019-11-23 08:03:12 +00:00
pierre
8ea92a8280 Use correct macro to for 64-bit riscv CPU
git-svn-id: trunk@43561 -
2019-11-22 21:29:19 +00:00
Jonas Maebe
ff919184d8 * restored original behaviour of shl/shr constant evaluation outside
inline statements
   o fixes compilation of pasjpeg with -Cr

git-svn-id: trunk@43560 -
2019-11-22 21:12:00 +00:00
Jonas Maebe
0f46207776 * fixed (harmless) range error when expanding ~
git-svn-id: trunk@43559 -
2019-11-22 21:11:56 +00:00
michael
cf203a6590 * Add column separator
git-svn-id: trunk@43558 -
2019-11-22 15:15:15 +00:00
michael
0c25ada935 * Add header row
git-svn-id: trunk@43557 -
2019-11-22 14:44:14 +00:00