florian
051b9840a5
* write a proper error message if <int>/<int> is encountered while no
...
floating point support is available, resolves #32006
git-svn-id: trunk@43794 -
2019-12-25 18:09:30 +00:00
florian
fd0012deff
* when copying goto nodes take care if the label node is part of the copied tree
...
or not, resolves #35820
git-svn-id: trunk@43793 -
2019-12-25 17:10:14 +00:00
svenbarth
f59eae4f81
* correctly handle local reference in the RISC V assembler readers (both 32 and 64 bit)
...
git-svn-id: trunk@43790 -
2019-12-25 15:23:28 +00:00
svenbarth
4ad7d552a1
* increase support for multilib binutils for RISC V by passing the correct ABI to the linker
...
git-svn-id: trunk@43789 -
2019-12-25 15:23:25 +00:00
svenbarth
114c27fb4e
* increase support for multilib binutils for RISC V by passing the ABI to the assembler
...
git-svn-id: trunk@43788 -
2019-12-25 15:23:21 +00:00
Jonas Maebe
1a9e246c29
* added is_normal_fieldvarsym() helper and use it
...
o fixes several places where there was a check whether something is a
fieldvarsym, but not whether it's an instance rather than a class field
git-svn-id: trunk@43786 -
2019-12-24 22:12:44 +00:00
Jonas Maebe
6d51c69dbe
* fixed writing of calling convention for function declarations/definitions
...
in LLVM
git-svn-id: trunk@43785 -
2019-12-24 22:12:40 +00:00
Jonas Maebe
b89487e721
* fix paraloc def for vectors with vectorcall calling convention (was a single
...
element instead of a vector)
git-svn-id: trunk@43784 -
2019-12-24 22:12:37 +00:00
Jonas Maebe
96dfe3d03a
* LLVM support for writing vector types
...
git-svn-id: trunk@43783 -
2019-12-24 22:12:34 +00:00
Jonas Maebe
f5833dc048
* support for marking arraydefs as vectors
...
git-svn-id: trunk@43782 -
2019-12-24 22:12:31 +00:00
Jonas Maebe
1e3f72403e
* renamed getintparaloc to getcgtempparaloc
...
o it can be used for more than integer parameters
git-svn-id: trunk@43781 -
2019-12-24 22:12:25 +00:00
florian
a20209e691
+ tf_init_final_units_by_calls
...
* arm-embedded generates direct calls for unit init/final now as well
git-svn-id: trunk@43771 -
2019-12-24 16:14:30 +00:00
florian
be0054eeb4
* fixed output of line numbers/columns with -vR
...
git-svn-id: trunk@43769 -
2019-12-24 16:14:29 +00:00
florian
ef87879402
* common naming for fpu_none string
...
git-svn-id: trunk@43768 -
2019-12-24 16:14:28 +00:00
florian
cbec738829
* last commit was not complete/earlier version committed
...
git-svn-id: trunk@43767 -
2019-12-23 23:07:26 +00:00
florian
abb79553d2
* optimize case statements with a single branch into if statements (ord const only)
...
git-svn-id: trunk@43766 -
2019-12-23 22:42:53 +00:00
florian
cb44d7d4e2
* some cleanup
...
git-svn-id: trunk@43765 -
2019-12-23 21:52:06 +00:00
florian
4de6b3e6b9
* do not crash when an unsupported code page is encountered, resolves #35581
...
git-svn-id: trunk@43764 -
2019-12-23 21:44:50 +00:00
florian
2f374a37b7
* patch by Bart Broersma to allow to declare "LongInt = AnsiString" comparison
...
operator in non-macpas modes, resolves #29460
git-svn-id: trunk@43709 -
2019-12-22 22:06:26 +00:00
florian
b8b5d84108
* missing +')' added
...
git-svn-id: trunk@43707 -
2019-12-22 20:41:48 +00:00
florian
8465710329
+ make use of mulx instruction, if available
...
git-svn-id: trunk@43706 -
2019-12-21 16:20:10 +00:00
florian
30927039a6
+ MULX instruction
...
* change information for RORX corrected
git-svn-id: trunk@43705 -
2019-12-21 16:20:09 +00:00
svenbarth
0149d26adb
* in PeepHoleOptPass1Cpu when an instruction contains a segment, don't replace the current instruction with the next, cause then we get an infinite loop when compiling on Win32 with -dTEST_WIN32_SEH -O4
...
git-svn-id: trunk@43704 -
2019-12-20 16:44:54 +00:00
svenbarth
1779011ab4
* fix typo in comment
...
git-svn-id: trunk@43703 -
2019-12-20 16:44:52 +00:00
florian
fe7d7aa1e7
* patch by Alfred to fix building on DragonFly OS, resolves #36450
...
git-svn-id: trunk@43696 -
2019-12-17 21:57:09 +00:00
florian
5f2410b871
* patch by J. Gareth Moreton to fix an ie 2018061400 on darwin
...
git-svn-id: trunk@43694 -
2019-12-16 21:15:57 +00:00
Jonas Maebe
0f57151d36
+ recognise LLVM 9.0 (no changes needed compared to LLVM 8.0)
...
git-svn-id: trunk@43686 -
2019-12-14 17:15:27 +00:00
svenbarth
707f722531
* regenerate msg*.inc files after adding a new error message related to C blocks
...
git-svn-id: trunk@43685 -
2019-12-14 16:45:42 +00:00
svenbarth
8111e92e1f
* rework syntax for cblocks: now a cblock directive is required
...
* additionally implicit calling conventions of cdecl or mwpascal now work as well
* adjusted tests
+ added tests
Note: the generator for packages/univint needs to be fixed, until then building on macOS will be broken
git-svn-id: trunk@43684 -
2019-12-14 16:45:38 +00:00
Jonas Maebe
c477816100
- removed LLVM support for clang < 7.0 and Xcode < 10.0: those versions
...
contain various bugs and can't even complete "make all", so there is no
point in keeping them
o changed default LLVM target version to 7.0
git-svn-id: trunk@43682 -
2019-12-14 14:59:05 +00:00
Jonas Maebe
a352a12bb4
* use value_real rather than value_curency when writing currency
...
realconstnodes (fixes tcurrency1, tw33439 and tw36179 with LLVM)
o we need to load the fpu representation of the currency values,
not the scaled currency value
git-svn-id: trunk@43681 -
2019-12-14 14:11:12 +00:00
svenbarth
22ce9006ab
* fix number of last parser_* message entry
...
git-svn-id: trunk@43677 -
2019-12-11 22:43:03 +00:00
svenbarth
36e32ee607
* more correct method names (based on patch by Blaise.ru)
...
git-svn-id: trunk@43676 -
2019-12-11 22:43:00 +00:00
svenbarth
46a366d6ae
* clear up file comment (based on patch by Blaise.ru)
...
git-svn-id: trunk@43675 -
2019-12-11 22:42:56 +00:00
svenbarth
bf5d75e594
* move the common sequence to build a VMT for an objectdef into a separate procedure (based on a patch by Blaise.ru)
...
git-svn-id: trunk@43674 -
2019-12-11 22:42:53 +00:00
svenbarth
a6354741e6
* TVMTBuilder.build_interface_mappings does not need to be public (based on patch by Blaise.ru)
...
git-svn-id: trunk@43673 -
2019-12-11 22:42:48 +00:00
pierre
8c2aa32683
* Remove duplicate ibextraheader handling.
...
* Move SymAnsiStr boolean setting inside parseextraheader function.
* Only accept same CurrentPPULongVersion in parseextraheader function.
git-svn-id: trunk@43672 -
2019-12-11 17:14:27 +00:00
florian
ef7e4f6f62
* fix J. Gareth Moreton to resolve #36389
...
git-svn-id: trunk@43670 -
2019-12-09 22:00:45 +00:00
florian
599e2df71f
o patch by J. Gareth Moreton, resolves r36371:
...
* This patch makes some minor improvements to the cross-platform code that deals with jump optimisations.
More specifically, it attempts to do more in a single pass which has the nice side-effect of
fixing a couple of minor mistakes (in some situations, it would erroneously remove an alignment entry).
- Most improvements are with dealing with Jcc/JMP pairs and their equivalents on other platforms, by
collapsing label clusters and stripping dead code as soon as it has enough information to do so, and being
more intelligent before calling Continue to see if another optimisation can be performed in the same sitting.
- RemoveDeadCodeAfterJump is now a function that returns True if a jump was found among the dead code,
thus allowing the ability to flag the peephole optimizer for another iteration of Pass 1 - the
destination label may have appeared earlier in the code and become dead as a result of the removal
of the jump, thus opening up new optimisations with instructions that sat either side of the label.
- Preliminary tests show that it does sometimes reduce the number of passes required to optimise a subroutine
under -O3.
git-svn-id: trunk@43668 -
2019-12-09 20:58:31 +00:00
florian
2a315df80c
* check in CheckLive* if a register allocator is initialized for a certain register type
...
git-svn-id: trunk@43665 -
2019-12-08 22:22:17 +00:00
florian
ac6e4f59c6
* better error recovery, resolves #36397
...
git-svn-id: trunk@43653 -
2019-12-05 20:46:50 +00:00
florian
266daa62f1
* updated arm linker script as proposed by Alfred, resolves #36395
...
git-svn-id: trunk@43651 -
2019-12-05 20:07:16 +00:00
Jonas Maebe
54d3c26e27
* renamed abi_linux386_sysv to abi_i386_dynalignedstack, and also use it
...
for Darwin-based i386 platforms
git-svn-id: trunk@43650 -
2019-12-05 19:38:01 +00:00
florian
0cb85eef9b
* more currency fixes, should resolve #36176
...
git-svn-id: trunk@43635 -
2019-12-03 19:31:50 +00:00
pierre
c87facbae1
Use PInt64(@value_currency)^ construct to avoid internal error when starting from 3.0.4 ppcarm compiler
...
git-svn-id: trunk@43634 -
2019-12-03 16:05:30 +00:00
pierre
91e550edb6
Remove assigned but unused local variable i64 in taddnode.pass_typecheck_internal as suggested by Ondrej Pokorny
...
This also solves the "Invalid TypeCast Error" in rtl-objpas when compiled with -CriotR option.
git-svn-id: trunk@43631 -
2019-12-02 23:11:21 +00:00
svenbarth
927c91e093
* fix for Mantis #36388 : correctly handle generic constraints when looking for helpers
...
git-svn-id: trunk@43629 -
2019-12-02 22:29:34 +00:00
svenbarth
f2818bfe7a
* apply patch by Blaise.ru to remove last remnants of VMT regeneration which is no longer needed/used
...
git-svn-id: trunk@43628 -
2019-12-02 22:29:29 +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
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
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
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
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
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
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
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
Jonas Maebe
0802edb710
* fix Linux/i386 and Win32 after r43578
...
git-svn-id: trunk@43583 -
2019-11-25 07:55:57 +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
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
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
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
pierre
17c422c3f2
Patch by Gareth Moreton.
...
* TAOptObj.CollapseZeroDistJump: Change hp1 to local variable,
initialized as p.next, to avoid problems of dangling pointers
revealed by use of "-CriotR -O2" compilation arguments.
git-svn-id: trunk@43554 -
2019-11-22 09:10:32 +00:00
florian
98226d33b7
* do not optimize inline nodes which are part of call node which has an init and/or cleanup block, resolves #36323
...
git-svn-id: trunk@43553 -
2019-11-21 22:15:06 +00:00
svenbarth
3e9bfedbc4
* ensure that the required functions are referenced for Win32 SEH for packages as well
...
git-svn-id: trunk@43552 -
2019-11-21 21:45:21 +00:00
svenbarth
40c11baaac
* use a different name for the packages' entry point and use _DLLMainCRTStartup as an alias to avoid problems with the C-prefix
...
git-svn-id: trunk@43551 -
2019-11-21 21:45:18 +00:00
svenbarth
bb3b1b06a7
* fix condition for including a unit's object files or not when compiling with packages
...
git-svn-id: trunk@43550 -
2019-11-21 21:45:15 +00:00
svenbarth
2a1d26cc90
* use translateable error messages for undefined symbols and also report in which object file the symbol was first found
...
git-svn-id: trunk@43549 -
2019-11-21 21:45:11 +00:00
svenbarth
1e66b2464a
* regenerate msg*.inc files after adding new error messages for undefined symbols
...
git-svn-id: trunk@43548 -
2019-11-21 21:45:08 +00:00
svenbarth
f28ac2bfc6
+ add error messages for undefined symbols (both with a known object file and without)
...
git-svn-id: trunk@43547 -
2019-11-21 21:45:04 +00:00
svenbarth
cd7e3f354b
+ add a description for the link_e_comdat_selection_differs message
...
git-svn-id: trunk@43546 -
2019-11-21 21:45:01 +00:00
svenbarth
4b3ce0c023
* the symbol of the interface wrapper function needs to be considered as referenced as well
...
git-svn-id: trunk@43545 -
2019-11-21 21:44:57 +00:00
svenbarth
0a915e883e
* keep track of static symbols that a global function references, as those must now be exported from a dynamic package as well if the function can potentially be inlined
...
git-svn-id: trunk@43544 -
2019-11-21 21:44:53 +00:00
svenbarth
2e259ee3cc
* the VMT of the exception class needs to be referenced indirectly
...
git-svn-id: trunk@43543 -
2019-11-21 21:44:48 +00:00
svenbarth
a041f899d3
* when creating the static field of a generic, insert it into the generic instead of the global symtable as it isn't really used anyway
...
git-svn-id: trunk@43542 -
2019-11-21 21:44:43 +00:00
svenbarth
06fc84037c
* ensure that generic symbols are not tried to be exported
...
git-svn-id: trunk@43541 -
2019-11-21 21:44:40 +00:00
svenbarth
da1312698b
* correctly check for the system unit
...
git-svn-id: trunk@43540 -
2019-11-21 21:44:36 +00:00
svenbarth
6151f7af29
* check the localswitches of the node instead of the global ones
...
git-svn-id: trunk@43539 -
2019-11-21 21:44:33 +00:00
svenbarth
6f584333e5
* symbols called by g_call might need to be imported from dynamic packages as well
...
git-svn-id: trunk@43538 -
2019-11-21 21:44:29 +00:00
svenbarth
85637ad5fa
* register constant symbols
...
git-svn-id: trunk@43537 -
2019-11-21 21:44:26 +00:00
svenbarth
f4d96906c2
* reference FPC_ABSMASK_SINGLE/-DOUBLE using the indirect symbol if required for dynamic packages
...
git-svn-id: trunk@43536 -
2019-11-21 21:44:22 +00:00
svenbarth
f13200d68b
* restore localswitch settings after the initialization and finalization code was generated
...
git-svn-id: trunk@43535 -
2019-11-21 21:44:19 +00:00
svenbarth
276f5bdef8
* ensure that nothing assembly related is generated for generics when a typed constant (this also includes local variable initializations) are parsed
...
git-svn-id: trunk@43534 -
2019-11-21 21:44:16 +00:00
svenbarth
04984e9af9
* also generate indirect symbols for AB_PRIVATE_EXTERN symbols as these might be used from a unit in another package due to inlining
...
git-svn-id: trunk@43533 -
2019-11-21 21:44:12 +00:00
florian
f5caa9940b
* make use of RemoveCurrentP
...
git-svn-id: trunk@43532 -
2019-11-21 20:19:49 +00:00
florian
61bf55e0fe
* define renamed
...
git-svn-id: trunk@43531 -
2019-11-21 19:58:48 +00:00
pierre
ff415ba39c
Fixes by Gareth Moreton for problems exposed by use of -CriotR option
...
git-svn-id: trunk@43529 -
2019-11-21 10:00:20 +00:00
pierre
a61a0cce4c
Use same entered_paren local variable as 64-bit counterpart and fix register names
...
git-svn-id: trunk@43522 -
2019-11-20 22:44:30 +00:00
florian
6248a127ca
* write assembler optimizer messages into output file if DEBUG_AOPTOBJ is set
...
git-svn-id: trunk@43521 -
2019-11-20 22:12:28 +00:00
florian
40c54e9d37
* do not generate conditional jump with full references
...
+ more assembler optimizer output
git-svn-id: trunk@43520 -
2019-11-20 22:12:27 +00:00
florian
da54d0e8f7
+ patch by J. Gareth Moreton: new method TAOptObj.CanDoJumpOpts and arm specific implementation
...
git-svn-id: trunk@43519 -
2019-11-20 22:12:27 +00:00
florian
f505822ab5
o patch by J. Gareth Moreton:
...
* fix jump optimizer for MIPS(EL).
+ New method called "MakeUnconditional" introduced that can do platform-specific changes
git-svn-id: trunk@43518 -
2019-11-20 22:12:26 +00:00
pierre
7eb0be6127
Fix invalid typecast revealed by -CriotR by changing order of terms in boolean expression
...
git-svn-id: trunk@43515 -
2019-11-19 22:47:39 +00:00
florian
91f3f022fe
* MM registers which might not be changed can be still used in 3 op mathematical operations as source
...
git-svn-id: trunk@43509 -
2019-11-17 14:48:45 +00:00
florian
2d3ef8b4bc
* pushf/push cs on all platforms when directly calling an interrupt procedure, with the
...
recent changes needed for 16 byte stack alignment it should work now
git-svn-id: trunk@43508 -
2019-11-17 14:16:32 +00:00
florian
a7e72617a6
* fix stackmisalignment calculation to take care of pushf/push cs, before r43503,
...
it was correct by coincidence
git-svn-id: trunk@43506 -
2019-11-17 09:14:54 +00:00
Jonas Maebe
acbb456ae5
* fixed constant evaluation of shr of negative values after r43497
...
(tshlshr compiled with -O3)
git-svn-id: trunk@43504 -
2019-11-16 17:58:06 +00:00
florian
240acc10f8
* fix calculation of stackmisalignment for interrupt procedures as pointed out by Jonas
...
git-svn-id: trunk@43503 -
2019-11-16 17:46:39 +00:00
florian
60b3296594
* relax conditions in tcallnode.optimize_funcret_assignment, resolves #36279
...
git-svn-id: trunk@43501 -
2019-11-16 17:16:16 +00:00
florian
52cc02aa3b
* values passed to const parameters are not limited to registers and constants
...
git-svn-id: trunk@43500 -
2019-11-16 17:16:15 +00:00
Jonas Maebe
4fd670c6ec
* fixed missing masking of values after shifting them during inline
...
evaluation
o also only mask values when performing a constant evaluation of
"0 shl/shr x" during inline evaluation (just like when evaluating other
shl/shr operations)
git-svn-id: trunk@43497 -
2019-11-16 14:27:47 +00:00
florian
851accbb4b
* cse adjusted
...
git-svn-id: trunk@43496 -
2019-11-16 14:07:59 +00:00
florian
13ab35e3ef
* fix usage of ppumove generated shared libraries
...
git-svn-id: trunk@43495 -
2019-11-16 14:07:32 +00:00
florian
a969097a80
* optimization Move removed 4 fixed
...
git-svn-id: trunk@43493 -
2019-11-16 14:04:02 +00:00
florian
798a1b6219
* -P option for ppumove
...
git-svn-id: trunk@43487 -
2019-11-16 11:03:53 +00:00
florian
d4f0658c02
* disable condition jump optimization on MIPS for now for the time being
...
git-svn-id: trunk@43486 -
2019-11-15 20:50:17 +00:00
Jonas Maebe
c22d39bcdf
* fixed linking on NetBSD/m68k after r36168
...
* fixed linking on target for NetBSD/m68k, and when cross-compiling for
Darwin from Windows after r36168
* enabled the use of the "-filelist" linker option for Darwin in all
cases (mantis #36273 )
git-svn-id: trunk@43485 -
2019-11-15 20:31:41 +00:00
michael
43a09af7f2
* Fix overflow of compiler messages (bug id 27973)
...
git-svn-id: trunk@43481 -
2019-11-15 15:37:58 +00:00
pierre
a09e40945c
Regenerate all Makefile's after commit #43472
...
git-svn-id: trunk@43478 -
2019-11-15 14:47:02 +00:00
florian
bf24882c33
* patch by J. Gareth Moreton: fix building for armv6m after r43441
...
git-svn-id: trunk@43466 -
2019-11-14 21:38:21 +00:00
florian
87b3b089d6
* i386: more clean up of TCPUAsmOPtimizer.PeepHoleOptPass1Cpu
...
git-svn-id: trunk@43465 -
2019-11-14 21:26:48 +00:00
florian
632f13c47a
* i386 does not use anymore its own assembler optimizer loops
...
git-svn-id: trunk@43464 -
2019-11-14 21:14:01 +00:00
florian
0ab0eefae0
+ separate JUMP_DEBUG define
...
git-svn-id: trunk@43463 -
2019-11-14 21:14:00 +00:00
florian
d82335bf9a
* do not remove cfi_endproc after jmps
...
git-svn-id: trunk@43462 -
2019-11-13 21:13:05 +00:00
florian
e1433adc2e
* check in the internal assembler for references with incorrect use of RIP
...
+ test
git-svn-id: trunk@43461 -
2019-11-13 20:47:42 +00:00
florian
6bed497c7c
* be carefully with references using RIP when doing LeaOp2Op optimizations
...
git-svn-id: trunk@43460 -
2019-11-13 20:47:40 +00:00
pierre
9b3447a6a4
Fix ppudump after commit #43450
...
git-svn-id: trunk@43458 -
2019-11-13 16:59:26 +00:00
florian
ae6b204c94
+ added comments for LeaOp2Op
...
git-svn-id: trunk@43457 -
2019-11-12 22:10:01 +00:00
florian
7ee0ad4d63
+ LeaOp2Op optimization
...
* replaced some manual removels of p by RemoveCurrentP calls
git-svn-id: trunk@43456 -
2019-11-12 22:04:23 +00:00
florian
5c0a5b73c7
* patch by J. Gareth Moreton: fix compilation with debug info after r43441 and friends, resolves #36299
...
git-svn-id: trunk@43455 -
2019-11-12 20:03:19 +00:00
florian
1d6e719e38
* improve ShlAddLeaSubIncDec2Lea to take care of foldable LEAs
...
git-svn-id: trunk@43453 -
2019-11-11 22:08:17 +00:00
florian
83a11c2a7d
* patch by J. Gareth Moreton to clean up TX86AsmOptimizer.OptPass2Jcc, resolves #36295
...
git-svn-id: trunk@43452 -
2019-11-11 21:29:13 +00:00
Jonas Maebe
2f914ee2d8
* packed tabstractvarsym.addr_taken/different_scope fields into a set
...
git-svn-id: trunk@43450 -
2019-11-11 09:26:51 +00:00
florian
5f3050961f
* load left properly into a register in tx86addnode.second_addordinal, resolves #36287
...
git-svn-id: trunk@43449 -
2019-11-10 21:45:57 +00:00
florian
7464c88003
* fix and improve MovImul2Imul: we cannot insert the move target into imul if the imul is 64 bit and the mov 32 bit as
...
we cannot ensure that the upper 32 bits of the move target are really clear
git-svn-id: trunk@43447 -
2019-11-10 21:09:06 +00:00
florian
4b455600b8
* swapped decrefs and StripLabelFast as proposed by Gareth on the mailing list
...
git-svn-id: trunk@43445 -
2019-11-10 18:23:50 +00:00
florian
7747c5fc27
-- Zusammenführen von r43307 bis r43443 in ».«:
...
D tests/webtbs/tw32219.pp
U compiler/i386/i386att.inc
U compiler/i386/i386atts.inc
U compiler/i386/i386int.inc
U compiler/i386/i386nop.inc
U compiler/i386/i386op.inc
U compiler/i386/i386prop.inc
U compiler/i386/i386tab.inc
U compiler/i8086/i8086att.inc
U compiler/i8086/i8086atts.inc
U compiler/i8086/i8086int.inc
U compiler/i8086/i8086nop.inc
U compiler/i8086/i8086op.inc
U compiler/i8086/i8086prop.inc
U compiler/i8086/i8086tab.inc
U compiler/x86/x86ins.dat
U compiler/x86_64/x8664ats.inc
U compiler/x86_64/x8664att.inc
U compiler/x86_64/x8664int.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86_64/x8664op.inc
U compiler/x86_64/x8664pro.inc
U compiler/x86_64/x8664tab.inc
U tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43443 in ».«:
U .
git-svn-id: trunk@43444 -
2019-11-10 16:44:34 +00:00
florian
47bb71efc4
* unneeded changes reverted
...
git-svn-id: branches/tg74/avx512merge@43443 -
2019-11-10 16:41:53 +00:00
florian
e1e8986462
* patch by J. Gareth Moreton, issue #36271 , part 3: support for the other architectures
...
git-svn-id: trunk@43441 -
2019-11-10 16:11:40 +00:00
florian
2d295a3816
* patch by J. Gareth Moreton, issue #36271 , part 2: x86 specific rework of the jump optimizer
...
git-svn-id: trunk@43440 -
2019-11-10 16:11:39 +00:00
florian
47dcc5b05b
* patch by J. Gareth Moreton, issue #36271 , part 1: general rework of the jump optimizer
...
git-svn-id: trunk@43439 -
2019-11-10 16:11:38 +00:00
Jonas Maebe
d23c7980aa
* properly perform (or not) range/overflow checking when performing constant
...
propagation into inlined routines, regardless of the range/overflow
checking state at the caller site
git-svn-id: trunk@43436 -
2019-11-10 12:00:05 +00:00
florian
88a8871c62
* read more types of references properly
...
git-svn-id: trunk@43433 -
2019-11-09 21:58:31 +00:00
florian
79dfd9fb51
+ MIPS: take care of setnoat
...
git-svn-id: trunk@43432 -
2019-11-09 21:58:30 +00:00
florian
99ce957111
* fixed default value for progbits
...
git-svn-id: trunk@43430 -
2019-11-09 18:32:36 +00:00
florian
137f392c66
* parameters declared as out must be initialized
...
git-svn-id: trunk@43429 -
2019-11-09 18:29:14 +00:00
florian
40bbb28fd2
* do not write section flags/progbits for .data, .rodata .data.norel as the compiler will ignore them anyways and warn about it
...
git-svn-id: trunk@43428 -
2019-11-09 18:28:30 +00:00
florian
f20e6ff323
* update generic linker script
...
git-svn-id: trunk@43426 -
2019-11-09 16:58:58 +00:00
florian
d275e7a7e6
* removed accidently committed debug statement
...
git-svn-id: trunk@43413 -
2019-11-07 21:12:47 +00:00
florian
c8f746b881
* do not allocate an extra register for some integer operations if not needed
...
git-svn-id: trunk@43412 -
2019-11-07 21:08:08 +00:00
svenbarth
b0ac0ddcc9
+ add support for the IsManagedType() intrinsics which reports for a type (or variable) whether it needs initialization/finalization
...
+ added tests
git-svn-id: trunk@43409 -
2019-11-06 23:04:52 +00:00
Jonas Maebe
ac1e0f96bd
* replaced tentryfile.get/putsmall/normalset() with a common tget/putset
...
that expects an open array of byte, and use it for all sets
o since all sets need to be typecasted to an array type of the appropriate
size, we'll get a compilation error in case this needs to be done and
that also tells us at the same time that the ppu version will need to
be increased
* enabled {$packset 1} for the compiler, as this is now safe with the above
changes
git-svn-id: trunk@43407 -
2019-11-06 21:50:19 +00:00
tg74
1454e8b29d
new avx512-opcodes VBMI2,VNNI,BITALG ...
...
git-svn-id: branches/tg74/avx512merge@43406 -
2019-11-06 19:51:01 +00:00
pierre
fff3b67b7e
Remove ALLOW_WARNINGS=1 for m68k compiler
...
git-svn-id: trunk@43392 -
2019-11-05 10:37:19 +00:00
pierre
7d12e8cc6d
Avoid warnings for m68k compiler
...
git-svn-id: trunk@43391 -
2019-11-05 10:00:48 +00:00
florian
fabe4cc067
* patch by Christo Crause: reg. allocation information if non-volatile registers
...
are used for parameter passing as it is might happen on avr, resolves #36079
git-svn-id: trunk@43390 -
2019-11-04 20:14:46 +00:00
florian
c6659d62f8
* do not join register deallocations/allocations as it makes no use and causes later on trouble in
...
the assembler optimizer as register allocations are not correct, resolves #33565
git-svn-id: trunk@43384 -
2019-11-03 17:13:59 +00:00
Jonas Maebe
62da49577d
* set default Mac OS X/OS X/macOS target version to 10.8 for i386 and x86-64,
...
instead of the previous 10.4 for i386 and 10.5 for x86-64. This prevents
issues with finding the crt.* files, as starting with 10.8 those files
are no longer required.
git-svn-id: trunk@43374 -
2019-11-02 22:44:15 +00:00
florian
20a47afe13
* more aggressive LeaCallLeaRet2Jmp
...
git-svn-id: trunk@43373 -
2019-11-02 22:37:31 +00:00
florian
1fc7667b3b
+ LeaCallLeaRet2Jmp
...
git-svn-id: trunk@43372 -
2019-11-02 22:37:30 +00:00
florian
6842c5784d
* CallRet2Jmp works with PIC
...
git-svn-id: trunk@43371 -
2019-11-02 22:37:29 +00:00
florian
3487c34ed9
* unified TX86AsmOptimizer.OptPass1MOVAP and TX86AsmOptimizer.OptPass1VMOVAP
...
git-svn-id: trunk@43370 -
2019-11-02 18:48:23 +00:00
florian
f9530437c2
* fix i386 building
...
git-svn-id: trunk@43369 -
2019-11-02 18:34:53 +00:00
florian
c3ef42b164
* allow cmov with memory reference if it is a pure symbol or a rip relative symbol: as the symbol is
...
allocated within the image of the program, this should never cause a seg. fault, so it is save
to use cmov with it
git-svn-id: trunk@43368 -
2019-11-02 18:09:11 +00:00
svenbarth
ccb169b0f1
* correctly handle PE COMDAT sections: like for the Comdat groups in ELF files the unused symbols need to be converted to externals so that relocations are handled correctly
...
git-svn-id: trunk@43359 -
2019-11-02 12:36:30 +00:00
svenbarth
c6a08cdc6e
+ add a Flush method to TExeMap which is useful when debugging internal errors or crashes where the exemap instance has not yet been destroyed
...
git-svn-id: trunk@43358 -
2019-11-02 12:36:26 +00:00
florian
ae04e5d7f0
* avr: apply LdiOp2Opi optimization also to and and sub
...
git-svn-id: trunk@43352 -
2019-11-01 18:39:18 +00:00
florian
701848889e
* avr: help the compiler with constant loading to avoid ie 200309041
...
git-svn-id: trunk@43350 -
2019-11-01 18:39:16 +00:00
florian
e8a48be3bc
* avr: more precise execution weigth for shift loops
...
git-svn-id: trunk@43349 -
2019-11-01 18:39:15 +00:00
florian
f61207f1cc
* avr directly encodes constant shifts of 64 bit values
...
git-svn-id: trunk@43348 -
2019-11-01 18:39:15 +00:00
florian
4e33889a29
* cleanup tshlshrnode.pass_1
...
git-svn-id: trunk@43347 -
2019-11-01 18:39:14 +00:00
svenbarth
fdeaacac21
* fix for Mantis #36223 : when parsing a helper type its extendeddef might be Nil
...
+ added test
git-svn-id: trunk@43346 -
2019-11-01 15:02:31 +00:00
svenbarth
f481587bee
* fix compilation on PE/COFF based systems with GNU AS as there the progbits are not supported
...
git-svn-id: trunk@43345 -
2019-11-01 13:27:29 +00:00
florian
e19eff1332
* also type casts to booleans benefit if unneeded type widenings are removed
...
git-svn-id: trunk@43344 -
2019-11-01 09:52:37 +00:00
florian
cb67577002
* fix length(<dyn. type>)=0 optimization, resolves #36215
...
git-svn-id: trunk@43343 -
2019-10-31 21:29:41 +00:00
florian
172a4a999b
+ MovMov2Mov 6 and MovMov2Mov 7 optimization
...
git-svn-id: trunk@43339 -
2019-10-30 22:39:13 +00:00
florian
59d300fc6e
* optimize TAOptBase.SuperRegistersEqual
...
git-svn-id: trunk@43337 -
2019-10-30 20:07:27 +00:00
florian
cfec725195
* clean up TX86AsmOptimizer.OptPass1MOV
...
git-svn-id: trunk@43336 -
2019-10-30 20:07:26 +00:00
florian
b7f58dd8c8
* load nodes for variables in registers do not generated instructions, so their complexity is zero
...
git-svn-id: trunk@43319 -
2019-10-27 16:53:26 +00:00
florian
31e5b2d9a4
* more precise estimation of subscript node complexity
...
git-svn-id: trunk@43314 -
2019-10-27 12:40:08 +00:00
Károly Balogh
421b06affe
morphos: in SDK 3.14, the binutils is finally upgraded to 2.32 (from 2.9.1), which makes section smartlinking working with binutils, and also has finally properly working stabs relocations for lineinfo, etc. so it's the default again both cross and native compilations
...
git-svn-id: trunk@43313 -
2019-10-26 22:24:00 +00:00
Jonas Maebe
6483b3f5e3
* fixed opt-in sysroot substitution again, renamed the three-argument version
...
TSearchPathList.AddPath() to AddLibraryPath() to make it clear it's only
to be used for adding library search paths (and replaced one case where
it was used for a source file search path with a call to the
two-argument version)
* also added some missing '=' prefixes to built-in library search paths,
and fixed wrong DirectoryExists checks in t_linux in case of using
a sysroot, cross-compiling or linking on target
git-svn-id: trunk@43312 -
2019-10-26 13:48:30 +00:00
florian
cc703a9c59
+ include -Avasm into the help screen
...
git-svn-id: trunk@43311 -
2019-10-26 08:37:20 +00:00
pierre
2d20151446
Change parent class of trv32aatreader to trvattreader
...
git-svn-id: trunk@43309 -
2019-10-24 15:28:47 +00:00
pierre
7e5bf5a9fb
Fix compilation error for i8086 cpu target
...
git-svn-id: trunk@43308 -
2019-10-24 07:03:14 +00:00
florian
fa9c7a92c7
-- Zusammenführen von r42725 bis r43306 in ».«:
...
A tests/webtbs/tw32219.pp
U tests/utils/avx/avxopcodes.pas
U tests/utils/avx/asmtestgenerator.pas
U compiler/i386/i386tab.inc
U compiler/i386/i386nop.inc
U compiler/i8086/i8086tab.inc
U compiler/i8086/i8086nop.inc
U compiler/x86_64/x8664tab.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86/aasmcpu.pas
U compiler/x86/x86ins.dat
U compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43306 in ».«:
U .
git-svn-id: trunk@43307 -
2019-10-23 18:17:50 +00:00
pierre
5bfebeea4e
Avoid GPF if currPath is empty in AddPath method, as this is accepted and handled later
...
git-svn-id: trunk@43306 -
2019-10-23 10:39:49 +00:00
florian
54f16d68be
* fixes TSearchPathList.AddPath after r43279 (without this commit, tests/test/tudots2.pp is broken)
...
git-svn-id: trunk@43302 -
2019-10-21 20:48:34 +00:00
florian
c2a36826a7
* regenerated
...
git-svn-id: branches/tg74/avx512merge@43300 -
2019-10-21 20:08:27 +00:00
nickysn
cb9f569906
* fixed i8086 compilation after r43265
...
git-svn-id: trunk@43289 -
2019-10-21 13:14:58 +00:00
tg74
e019d810b0
bugfix movntsd, movntss
...
git-svn-id: branches/tg74/avx512merge@43284 -
2019-10-21 09:39:53 +00:00
florian
ee3258c0da
* optimizing length(<dyn. type>)=0 is not possible for jvm
...
git-svn-id: trunk@43280 -
2019-10-20 21:10:56 +00:00
Jonas Maebe
78fb35525f
* change convention for searching sysroot library paths to be the same as the
...
one used by GNU ld: only search for library paths in the sysroot if they
are built into the compiler or start with "=". Previously, all
user-provided library paths were also searched in the sysroot
(mantis #36198 )
git-svn-id: trunk@43279 -
2019-10-20 17:26:44 +00:00
florian
14167ca84a
* potential fix for assembler MOVNTSD
...
git-svn-id: branches/tg74/avx512merge@43276 -
2019-10-20 15:51:18 +00:00
florian
85ca3248bf
* clean up overlefts from "SCL" based approach
...
git-svn-id: branches/tg74/avx512merge@43275 -
2019-10-20 14:43:16 +00:00
florian
b73ebce671
* keep ppcx64.lpi unchanged
...
git-svn-id: branches/tg74/avx512merge@43274 -
2019-10-20 14:40:40 +00:00
Jonas Maebe
e3c6ef21d1
* fixed compilation for Darwin and AIX after addition of section attributes
...
git-svn-id: trunk@43273 -
2019-10-20 14:14:09 +00:00
florian
e80eee5da5
* generate better code for length(<dyn. type>)=0, resolves #36060
...
git-svn-id: trunk@43272 -
2019-10-20 13:03:45 +00:00
svenbarth
e251c8e2ab
* fix for Mantis #36174 : correctly initialize secprocbits and secflags given the section type
...
git-svn-id: trunk@43267 -
2019-10-19 15:41:41 +00:00
svenbarth
7f8800eeb1
+ add a method to TObjData to retrieve the TSectionProcBits and TSectionFlags values for a given section type
...
git-svn-id: trunk@43266 -
2019-10-19 15:41:37 +00:00
svenbarth
e5de269664
* change TObjData.sectiontype2options to a class function so that it can be called without an instance of TObjData
...
git-svn-id: trunk@43265 -
2019-10-19 15:41:33 +00:00
svenbarth
e7715023da
* fix for Mantis #35567 : use the correct type for the size type of a dynamic array
...
git-svn-id: trunk@43264 -
2019-10-19 15:41:29 +00:00
florian
af8783e8d2
* i386: with a fixed stack, exception handling does not need a frame pointer
...
git-svn-id: trunk@43218 -
2019-10-17 20:55:39 +00:00
pierre
6f7a39adab
Fix compilation for arm-darwin using clang and forbid use of eabihf ABI for that target
...
git-svn-id: trunk@43205 -
2019-10-15 22:17:52 +00:00
pierre
9d765af693
Fix parsing error in GNU linker script, KEEP needs braces
...
git-svn-id: trunk@43197 -
2019-10-14 16:04:02 +00:00
florian
626ef4ae0c
* give an error if an explicit enumeration valid exceeds the valid range, resolves #34633
...
git-svn-id: trunk@43191 -
2019-10-13 15:48:21 +00:00
Jonas Maebe
33c4a5dda7
* don't try to bitpack arrays of non-ordinals (mantis #36157 )
...
git-svn-id: trunk@43187 -
2019-10-13 11:11:28 +00:00
Jonas Maebe
51c6ebfe54
* work around broken x86 shifting in bitpacked value calculation
...
(mantis #36156 )
git-svn-id: trunk@43186 -
2019-10-13 10:47:31 +00:00
Jonas Maebe
dadeff5b09
* fixed Darwin/i386 after r43176
...
git-svn-id: trunk@43185 -
2019-10-13 10:47:25 +00:00
florian
6e58178963
* do not write DW_AT_allocated and DW_AT_data_location tags for old style objects and cppobjects, resolves #36017
...
git-svn-id: trunk@43183 -
2019-10-13 10:06:48 +00:00
Jonas Maebe
3e11f1b2fe
* fix length calculation of winlike widestrings in Dwarf 3 (patch by
...
Martin Friebe, mantis #35566 )
git-svn-id: trunk@43182 -
2019-10-13 09:31:08 +00:00
Jonas Maebe
bdcda8660e
* fix Dwarf 3 array location broken in r43171 (fix by Martin Friebe,
...
mantis #36144 )
git-svn-id: trunk@43181 -
2019-10-13 07:37:42 +00:00
florian
5573bee314
+ makefiles use -Sew, so added to the project as well
...
* updated for new format
git-svn-id: trunk@43179 -
2019-10-12 21:56:18 +00:00
florian
533a113885
+ LeaCallLeaRet2Jmp optimization
...
git-svn-id: trunk@43178 -
2019-10-12 21:51:15 +00:00
florian
00c2fd4005
+ x86: LeaLea2Lea optimization
...
git-svn-id: trunk@43177 -
2019-10-12 21:51:14 +00:00
florian
fb91899457
* adapted 16 byte alignment handling on linux: it is now assumed that the callee tries to clear the stack, so in the caller, the stack is re-adjusted
...
git-svn-id: trunk@43176 -
2019-10-12 21:51:13 +00:00
Jonas Maebe
67fc9a7853
* fixed peephole opitimizer removing some infinite loops (mantis #36139 )
...
git-svn-id: trunk@43175 -
2019-10-12 21:39:48 +00:00
Jonas Maebe
6c29ecbd1c
* moved array stride back to array entry (mantis #36144 )
...
git-svn-id: trunk@43171 -
2019-10-12 12:25:07 +00:00
florian
5fc12500f2
* patch by Christo Crause: fix for r43136
...
git-svn-id: trunk@43169 -
2019-10-12 11:52:06 +00:00
florian
688c7d439f
o AArch64:
...
* properly initialize FPU
* FMOV cannot throw an FPU exception
git-svn-id: trunk@43167 -
2019-10-11 21:55:48 +00:00
pierre
1bed61195e
Fix m68k errors with -CriotR option
...
git-svn-id: trunk@43165 -
2019-10-10 21:57:07 +00:00
florian
29bdbdba95
* reduce amount of software floating point exception checking, VSTR, VMOV, VLDR do not raise those
...
git-svn-id: trunk@43162 -
2019-10-10 20:31:30 +00:00
florian
e0041a8244
* compilation of x86 and PowerPC fixed
...
git-svn-id: trunk@43158 -
2019-10-09 19:26:59 +00:00
florian
245b58c249
+ support for arm attributes
...
* abi notes fixed
git-svn-id: trunk@43157 -
2019-10-09 17:45:40 +00:00
tg74
05429fc4c2
bugfix 35700 - replace x86insdat-opcodeflags SCL_32,SCL_64 with \336\,\337\)
...
git-svn-id: branches/tg74/avx512merge@43152 -
2019-10-08 09:13:43 +00:00
florian
dd2d1bf68b
* (modified/re-formatted) patch by Christo Crause: AVR: Optimizing code generation for shift with compile time constant
...
git-svn-id: trunk@43136 -
2019-10-05 20:48:33 +00:00
florian
35e11cd6d4
* several linux targets switches from stabs to dwarf
...
git-svn-id: trunk@43135 -
2019-10-05 20:48:32 +00:00
florian
8ecdb2e9ca
+ dwarf support for tls threadvars
...
git-svn-id: trunk@43134 -
2019-10-05 20:48:31 +00:00
florian
df4ec9e8e3
* arm-linux uses dwarf debug info by default
...
git-svn-id: trunk@43133 -
2019-10-05 20:48:30 +00:00
florian
a2d3522812
* general-dynamic -> global-dynamic
...
git-svn-id: trunk@43132 -
2019-10-05 20:48:29 +00:00
florian
7ee889d4ec
* it must be decided in allocate_tls_register if a tls register is allocated
...
git-svn-id: trunk@43131 -
2019-10-05 20:48:28 +00:00