Jonas Maebe
a079e5fa80
* synchronised with trunk till r41449
...
git-svn-id: branches/debug_eh@41450 -
2019-02-24 20:01:53 +00:00
Jonas Maebe
7c4e7d6bd3
* support OS_32/OS_64 in cgsize2subreg for ARM MM registers to handle
...
records passed in MM registers
git-svn-id: trunk@41449 -
2019-02-24 19:59:03 +00:00
Jonas Maebe
08791712d7
* also specify the byval alignment at the callee side
...
git-svn-id: trunk@41448 -
2019-02-24 19:59:00 +00:00
Jonas Maebe
bead1f8180
* properly set 8 byte parameter alignment for first parameter on ARM if
...
applicable
git-svn-id: trunk@41447 -
2019-02-24 19:58:57 +00:00
Jonas Maebe
6071263469
* use ` instead of ^ as replacement character in LLVM asmnodes, as ^ can
...
appear in ARM inline assembly
git-svn-id: trunk@41446 -
2019-02-24 19:58:54 +00:00
Jonas Maebe
a87a7270d5
* remove double "nocapture" attributes
...
* also add "noalias nocapture" to sret parameters
git-svn-id: trunk@41445 -
2019-02-24 19:58:51 +00:00
Jonas Maebe
e829596750
* type left-over parts of parameters as arrays of "stack slot alignment" if
...
they're an exact multiple of the ialignment size on LLVM. This prevents
both overalignment (e.g. remainder of 8 individual bytes on ARM
would be aligned to 8 bytes instead of 4 if typed as int64) and
underalignment (e.g. 32 bytes remainder of a record that needs to be
aligned to 8 bytes would be aligned to 1 or 4 bytes if types as
array of resp. bytes or longints)
git-svn-id: trunk@41444 -
2019-02-24 19:58:47 +00:00
Jonas Maebe
bc77aad3d9
* give an error when trying to call through to a C varargs routine with a
...
high level code generator
o we cannot create a high-level stub in that case
git-svn-id: trunk@41443 -
2019-02-24 19:58:44 +00:00
Jonas Maebe
07bd4ba517
* let all the case code generation work with tconstexprint instead of aint,
...
so it also works for 32 bit targets and a high level code generator
(where aint is still 32 bit, but 64 bit operations are not decomposed)
git-svn-id: trunk@41441 -
2019-02-24 19:58:37 +00:00
pierre
c1e93bd2c2
+ compiler/symdef.pas: Add missing call to tderef.reset methods in all tdef constructors.
...
+ compiler/sysmsym.pas: Do the same for for all tsym constructors.
+ compiler/symtype.pas: Generate internalerror in tcompilerppufile.putderef
if a deref field has index -1, as this means that buildderef was not called
while it should have been called.
+ compiler/symtable.pas: Fix bug report itself by adding an extra local variable
CHANGED to add extra cycles in tstoredsymtable.buildderef_referenced method.
New tests for this bug report: tests/webtbs/tw35139.pp and tests/webtbs/tw35139a.pp
git-svn-id: trunk@41425 -
2019-02-23 23:03:29 +00:00
Jonas Maebe
ac883969a9
* synchronised with trunk till r41423
...
git-svn-id: branches/debug_eh@41424 -
2019-02-23 17:08:03 +00:00
Jonas Maebe
5cb5b10f8d
* fixed LLVM and non-i386 compilation
...
git-svn-id: branches/debug_eh@41423 -
2019-02-23 17:03:42 +00:00
Jonas Maebe
ba22fe74c7
* don't corrupt the assembler reader mode on i386 and i8086 if the syntax
...
mode is set to something else but Delphi on the command line
git-svn-id: trunk@41422 -
2019-02-23 16:03:25 +00:00
Jonas Maebe
4e5f48a25e
* add support for HFA parameter passing for ARM hardfloat
...
(fixes test/cg/tcalext6)
git-svn-id: trunk@41421 -
2019-02-23 15:42:48 +00:00
Jonas Maebe
8b9e90dc7a
* keep track of whether a routine has a C-style variadic parameter in the
...
procoptions even when it's through an array-of-const parameter
* always call create_varargs_paraloc_info() instead of create_paraloc_info()
in the former case, even when no varargs parameters are specified (because
on some platforms even some non-variadic parameters need to be passed
differently, such as on ARM with gnueabihf)
git-svn-id: trunk@41420 -
2019-02-23 15:42:45 +00:00
Jonas Maebe
1a559f5c60
* move the homogenous float aggregate determination function to a common
...
unit for ARM and AArch64
git-svn-id: trunk@41419 -
2019-02-23 15:42:39 +00:00
Jonas Maebe
af36913469
* don't use cg64.a_load64_loc_cgpara() for 64 bit records passed in
...
non-integer registers
git-svn-id: trunk@41416 -
2019-02-23 15:08:29 +00:00
florian
18fb53e012
* set cfa offset always properly
...
git-svn-id: branches/debug_eh@41413 -
2019-02-22 22:00:20 +00:00
yury
382d5060a0
* aarch64: According to ARM64 ABI, function's arguments and the result are not required to be sign/zero extended to a full register size. Obey this rule for all targets except iOS where sign/zero extension is required.
...
git-svn-id: trunk@41412 -
2019-02-22 17:59:54 +00:00
florian
b9bd47ec40
* fixed tpsabiehexceptionstatehandler.handle_reraise
...
git-svn-id: branches/debug_eh@41408 -
2019-02-21 22:08:09 +00:00
florian
3c61bb9c5d
* some safecall issues fixed
...
git-svn-id: branches/debug_eh@41406 -
2019-02-20 21:53:27 +00:00
yury
3a43ffd57b
* arm: Include pi_needs_got to current_procinfo.flags when the GOT register is accessed. It forces proper initialization of the GOT register at the beginning of a procedure. This fixes storing of a double constant to a field in a packed record and other rare copy operations when PIC is enabled.
...
git-svn-id: trunk@41405 -
2019-02-20 20:06:32 +00:00
yury
3e8c7f66b7
* arm: Fixed crash while loading double constants with PIC enabled. This is the regression after r41129. The crash has occurred due to usage of a rare code path. It will be fixed in the next commit.
...
git-svn-id: trunk@41404 -
2019-02-20 20:00:06 +00:00
yury
fa4596a08f
* ppudump: Fixed warnings with -O3.
...
git-svn-id: trunk@41394 -
2019-02-20 10:24:48 +00:00
yury
9a3ddf650c
* ppudump: Use buffered write when outputting to json or xml. It improves the output speed a lot.
...
git-svn-id: trunk@41393 -
2019-02-20 10:13:18 +00:00
florian
4b66dc0a94
* few fixes to psabieh, mainly related to nested exception handling
...
git-svn-id: branches/debug_eh@41385 -
2019-02-19 22:20:16 +00:00
florian
f66d7d431f
* ensure that the label points inside the range where the raise is located for psabieh
...
git-svn-id: branches/debug_eh@41384 -
2019-02-19 22:19:30 +00:00
florian
a8c8cc1890
* create proper cfi, when registers are pushed
...
git-svn-id: branches/debug_eh@41382 -
2019-02-19 22:16:39 +00:00
florian
38be96e586
* allow pointer+ord. const always if the node is created internally
...
git-svn-id: branches/debug_eh@41381 -
2019-02-19 22:16:05 +00:00
florian
a24d75ed3d
+ comment explaining previous change
...
git-svn-id: branches/debug_eh@41376 -
2019-02-18 22:03:29 +00:00
florian
502febc968
* resume needs to be surrounded by an empty landing pad
...
git-svn-id: branches/debug_eh@41375 -
2019-02-18 21:46:55 +00:00
florian
9514bd9162
* refactored psabieh handling, most code is now in psabiehpi
...
git-svn-id: branches/debug_eh@41367 -
2019-02-17 21:20:40 +00:00
florian
c0c14d5362
* building on PowerPC fixed
...
git-svn-id: branches/debug_eh@41366 -
2019-02-17 21:14:27 +00:00
florian
3567d01ee4
* improved CFI
...
git-svn-id: branches/debug_eh@41356 -
2019-02-17 20:26:32 +00:00
florian
5587c878e6
* small fixes for pseabieh
...
+ raise node support for pseabieh
git-svn-id: branches/debug_eh@41355 -
2019-02-17 20:12:51 +00:00
Jonas Maebe
d99d1f1f30
* let the ARM code generator use the generic tcg.a_load_ref_cgpara() instead
...
of its own buggy version
o added support to the generic version to override part of the functionality
needed to implement an ARM quirk
git-svn-id: trunk@41335 -
2019-02-16 10:45:46 +00:00
florian
e3546cf5af
* properly quote pathes for objcopy calls, resolves #35072
...
git-svn-id: trunk@41324 -
2019-02-15 18:57:20 +00:00
florian
a3594574ca
* in case of finally nodes of implicit frames with a third=nil, exit has to load 0 into the exception value, so an explicit exit call is not handled as an exception
...
git-svn-id: branches/debug_eh@41318 -
2019-02-14 22:30:40 +00:00
pierre
d4e059bd41
Fix bug report #35065 using provided patch by J. Gareth Moreton
...
git-svn-id: trunk@41310 -
2019-02-12 07:19:04 +00:00
florian
294c7c9daf
* adapt identifiert name
...
* updates for eh_frame support on native targets
* improved messages
git-svn-id: branches/debug_eh@41306 -
2019-02-11 20:29:02 +00:00
florian
dcf9744f12
* reverts accidentally changed identifier spelling
...
git-svn-id: branches/debug_eh@41305 -
2019-02-11 20:27:29 +00:00
florian
6817cea33b
+ missing unit
...
git-svn-id: branches/debug_eh@41291 -
2019-02-10 22:37:54 +00:00
florian
6b0c2a45f5
* compilation fixes
...
git-svn-id: branches/debug_eh@41290 -
2019-02-10 19:33:14 +00:00
florian
65aebd22b0
+ initial implementation of dwarf/eh_frame based exception handling for i386-linux, basic stuff works, open todos
...
* nested exception handling statments in one procedure need to be fixed
* clean up, finally factor out tcgprocinfo from psub at least
* extensive testing
git-svn-id: branches/debug_eh@41289 -
2019-02-10 18:07:33 +00:00
florian
501b384b17
+ define psabieh to enable dwarf based exception handling
...
git-svn-id: branches/debug_eh@41288 -
2019-02-10 18:01:11 +00:00
florian
72a02b467c
+ generate more cfi on x86
...
git-svn-id: branches/debug_eh@41287 -
2019-02-10 18:00:24 +00:00
florian
65cece7657
+ mark outmost frame in CFI
...
git-svn-id: branches/debug_eh@41286 -
2019-02-10 17:59:04 +00:00
florian
27ab140dd9
+ gcc_except_table section
...
+ support exception related sections in the default LD linker script
git-svn-id: branches/debug_eh@41285 -
2019-02-10 17:57:48 +00:00
florian
b81cc7fbaf
* set filepos better
...
git-svn-id: branches/debug_eh@41284 -
2019-02-10 17:53:52 +00:00
florian
e2c83edc2a
+ flag when a procedure generated exception table data
...
git-svn-id: branches/debug_eh@41283 -
2019-02-10 17:51:18 +00:00