Commit Graph

57572 Commits

Author SHA1 Message Date
michael
b86b2f1b80 * Patch from Klaus (computertechnik@web.de) to read/write columncount/columngap
git-svn-id: trunk@43627 -
2019-12-02 21:42:32 +00:00
svenbarth
3ced30f816 * apply (adjusted) patch by Blaise.ru: vmtentries is always created since 2008, so treat it as such (also fixes a memory leak in tobjectdef.getcopy)
git-svn-id: trunk@43626 -
2019-12-02 06:59:05 +00:00
svenbarth
ea75253926 * initialize the defid in trecorddef.create_global_internal as unique_id_str needs it
git-svn-id: trunk@43625 -
2019-12-02 06:58:59 +00:00
svenbarth
80a4a01f12 + add a method to tdef to initialize the defid from within a constructor
git-svn-id: trunk@43624 -
2019-12-02 06:58:47 +00:00
florian
b8a78b135c * simplified and improved TX86AsmOptimizer.RegModifiedByInstruction
git-svn-id: trunk@43623 -
2019-12-01 22:15:48 +00:00
florian
86d8e79e86 * fix some currency issues, resolves #33963 and #36179
git-svn-id: trunk@43620 -
2019-12-01 20:24:00 +00:00
florian
f5496c9d11 * improved build unit lazarus project for linux
git-svn-id: trunk@43618 -
2019-12-01 08:41:26 +00:00
florian
f2a8b8ad6a * adapt register if the size of the paraloc and the register differ, resolves #34409
git-svn-id: trunk@43617 -
2019-11-30 20:37:55 +00:00
svenbarth
06c1a17d13 * use tdef.unique_id_str to generate the unique internal name for anonymous record defs as using the count of the deflist is no longer correct
git-svn-id: trunk@43616 -
2019-11-30 17:40:27 +00:00
joost
d8c81744d3 * Fix for timestamps very close to a whole day in Firebird
git-svn-id: trunk@43615 -
2019-11-30 11:04:19 +00:00
pierre
4e4f55ac0e Comparison nodes are always in LOC_REGISTER, never in LOC_JUMP for riscv32 or riscv64 CPUs
git-svn-id: trunk@43614 -
2019-11-29 23:28:05 +00:00
pierre
92b0ea7d02 Add explicit smallint typecast to first marameter of SarSmallint call to avoid range check errors
git-svn-id: trunk@43613 -
2019-11-29 23:26:45 +00:00
florian
d8f1aacd78 * better error recovery, resolves #36377
git-svn-id: trunk@43612 -
2019-11-29 22:13:17 +00:00
florian
4525edd9f7 * patch by J. Gareth Moreton: x86 implementation of RegModifiedByInstruction, resolves #36376
git-svn-id: trunk@43611 -
2019-11-29 21:57:53 +00:00
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