sergei
|
e542800ea9
* Win64 SEH: Track control flow out of unwind-protected regions in a more precise way and don't generate expensive calls to __fpc_local_unwind when not necessary.
|
10 ani în urmă |
Jonas Maebe
|
0fc1fd6ac1
* replaced current_procinfo.currtrue/falselabel with storing the true/false
|
10 ani în urmă |
Jeppe Johansen
|
c5b24c5ce3
Changed cast to allow more loop iterations than the native bit-ness of the architecture.
|
10 ani în urmă |
Jonas Maebe
|
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
|
10 ani în urmă |
Jonas Maebe
|
8064adec38
* converted tcgtryexceptnode.pass_generate_code() and
|
11 ani în urmă |
Jonas Maebe
|
a637fbe596
* moved all g_exception_*() methods to hlcgobj and cleaned them up (no more
|
11 ani în urmă |
Jonas Maebe
|
bacd303208
* synchronized with trunk up to r27758
|
11 ani în urmă |
nickysn
|
a79a891940
* handle the result of FPC_CATCHES via the high level code generator (which makes it i8086 far pointer safe)
|
11 ani în urmă |
Jonas Maebe
|
73a3f5ced4
* moved ncgutil.maybechangeloadnodereg() to hlcg.maybe_change_load_node_reg()
|
11 ani în urmă |
sergei
|
e26ce9e442
* Fix code generation of for-loops. Keeping a copy of to-value in register during pass 2 is basically a hack, because register may be destroyed if an exception is raised and handled in loop body. This went unnoticed because generic setjmp-based exception handling is restoring registers to the state at entry to try block, and Win64 SEH also has some register-preserving features. However, for Win32 SEH it is not true.
|
11 ani în urmă |
sergei
|
563b74b16a
* Cleanup code generation for try..finally nodes.
|
11 ani în urmă |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
11 ani în urmă |
nickysn
|
bf07fc077b
* specify AT_DATA in all references to the tobjectdef.vmt_mangledname symbol.
|
11 ani în urmă |
sergei
|
4a9fe5d07d
* Fixed register live range in for-loops:
|
12 ani în urmă |
florian
|
a07af824ea
* properly fix raise node handling on x86-64 after r24288
|
12 ani în urmă |
pierre
|
4f8fcb7f15
Revert commit 24324 for ncgflow.pas unit to fix win64 cycle
|
12 ani în urmă |
florian
|
709ba5e053
+ introduce cnf_call_never_returns to signal the dfa if a call node never returns
|
12 ani în urmă |
nickysn
|
a5c5b05362
* initial support for system procs that use calling conventions that push left to right on i8086 or i386
|
12 ani în urmă |
Jonas Maebe
|
69c29a415f
* pass the procdef to getintparaloc instead of only the proccalloption, so
|
12 ani în urmă |
pierre
|
18698bc93d
Fix safecall for cpus for which NR_FUNCTION_RESULT_REG is different from NR_FUNCTION_RETURN_REG
|
13 ani în urmă |
florian
|
ca5fabda6d
* cleanup some unused units from uses clauses
|
13 ani în urmă |
Jonas Maebe
|
7a0ae38700
+ also specify the parameter def when allocating a parameter via
|
13 ani în urmă |
Jonas Maebe
|
edd42aa42a
* moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for
|
13 ani în urmă |
Jonas Maebe
|
aee5380ae0
* merged trunk up to r20882
|
13 ani în urmă |
sergei
|
fa98e0523d
* Safecall handling: forgot to free cgpara before doing the call, fixed.
|
13 ani în urmă |
sergei
|
f6761d7939
* Handle safecall exceptions entirely in tcgtryfinallynode pass2. This simplifies things and removes the need in hidden safe_result variable.
|
13 ani în urmă |
sergei
|
8c9ad67682
+ tcgexitnode,tcgbreaknode,tcgcontinuenode: added possibility to generate specialized code for leaving unwind-protected regions.
|
13 ani în urmă |
sergei
|
e2d43fcb30
- tcgonnode: don't store exception object in temp if it is not used.
|
13 ani în urmă |
sergei
|
a32fdc3ae6
+ Added a simple helper tcg.g_call, intended to replace allocallcpuregisters+a_call_name+deallocallcpuregisters sequence which is used all over the place.
|
13 ani în urmă |
sergei
|
9ed2fa6f7b
- Exception handling: calling FPC_CATCHES(-1) is obsolete, it does not change any state and its return value is not used. Removed.
|
14 ani în urmă |