svenbarth
|
a29ee477e3
Merged revision(s) 49339 from trunk:
|
4 жил өмнө |
florian
|
68eb921d46
* broken compilation after r39347 fixed
|
7 жил өмнө |
Jonas Maebe
|
d69ad8fa41
* removed temppos field again from parameter locations: they're not allocated
|
7 жил өмнө |
Jonas Maebe
|
4686f61002
* keep track of the temp position separately from the offset in references,
|
7 жил өмнө |
nickysn
|
518cdf9674
* replaced the saved_XXX_registers arrays with virtual methods inside
|
7 жил өмнө |
nickysn
|
f3391f81a5
+ introduce a new method tparamanager.asm_result_var(), which determines whether
|
7 жил өмнө |
florian
|
b948a0738c
* unified internalerror
|
8 жил өмнө |
florian
|
b1dff29cbf
* removed unused units
|
8 жил өмнө |
svenbarth
|
417f1cd49d
+ initial implementation of the RTTI for parameter locations (not *yet* used by anything)
|
8 жил өмнө |
Károly Balogh
|
49cec23ba6
for explicit paralocs, don't use the original explicit register as temp, but allocate a new register the same type instead. this fixes issues when the paralocs are also scratch regs and would get overwritten before the call itself
|
8 жил өмнө |
Jonas Maebe
|
5bd03651a9
* clarify/ensure intended order of evaluation
|
8 жил өмнө |
Károly Balogh
|
0cb555c07c
syscalls: move the reference implementation of parseparaloc to paramgr. removes two identical copies from CPU specific code and enables basereg convention for AROS/x86_64. also, other minor fixes and cleanups in related code.
|
8 жил өмнө |
Károly Balogh
|
4ee4099fca
m68k: introduce a register calling convention, inspired by VBCC. volatile registers are used to pass arguments
|
8 жил өмнө |
Jonas Maebe
|
99361994b7
* only copy the shiftval field from the original para location when creating
|
9 жил өмнө |
Jonas Maebe
|
fa3b0ca312
* support marking defs created via the getreusable*() class methods as
|
9 жил өмнө |
Jonas Maebe
|
f40ea04540
* changed getarraydef() into a tarraydef.getreusable() class method
|
10 жил өмнө |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
10 жил өмнө |
Jonas Maebe
|
d7412fb5c0
* fixed memory leaks and multiple recalculation regarding function result
|
10 жил өмнө |
Jonas Maebe
|
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
|
10 жил өмнө |
sergei
|
beeb85f11c
* Don't force CORBA (unmanaged) interfaces to be returned in parameter. All managed types including Variant and COM interfaces are already checked by handle_common_ret_in_param, superfluous checks removed.
|
10 жил өмнө |
Károly Balogh
|
9991ee4165
m68k: support loading of refs to data registers, also when explicit paraloc is set and it's a register, use that directly, this fixes several syscall-related corner cases on Amiga
|
11 жил өмнө |
nickysn
|
d8d35a32c9
- rm bogus ifdef cpu16bitalu from tparamanager.allocparaloc and .freecgpara
|
11 жил өмнө |
nickysn
|
9321d9916d
* use voidpointer.size instead of sizeof(pint) in tparamanager.push_size in
|
11 жил өмнө |
sergei
|
6ea9ce1077
* Force managed types to be always returned in parameters, independent of target (primitive types were already handled that way; the patch affects small records with fields of managed types).
|
11 жил өмнө |
sergei
|
f42c1b3720
* Return dynamic arrays in parameter, this was the only managed type still returned in register. Returning managed types in registers requires catching and re-raising exceptions at callee side in order to finalize result and avoid memory leaks. While such behavior makes little difference with generic setjmp-based exception handling, it becomes very inefficient as SEH-styled exception handling is being introduced.
|
11 жил өмнө |
svenbarth
|
235c06ab34
Implement volatile address registers. Fixes quite some tests, but also breaks others... (overall more are fixed than are broken :) )
|
11 жил өмнө |
Jonas Maebe
|
7f2750f188
* missing part of r24776, using a build server also has pitfalls :/
|
12 жил өмнө |
Jonas Maebe
|
9938169d2c
* don't use the paracgsize in get_paraloc_def(), because it generally
|
12 жил өмнө |
Jonas Maebe
|
7566ddcc8f
* add a tdef to each parameter location and set it for all target
|
12 жил өмнө |
sergei
|
4714dc2218
+ paramgr.pas: provide generic implementation of getintparaloc(). Once this method has been changed to use the procdef, it can reuse 'regular' parameter locations created by create_paraloc_info, so separate cpu-specific implementations of getintparaloc are no longer necessary.
|
12 жил өмнө |