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