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