pierre
|
40193ea1db
Add pi_has_open_array_parameter to proc_info.flags as this requires special handling for i8086 huge memory model to restore DS register correctly
|
10 gadi atpakaļ |
Jonas Maebe
|
d440daf47f
* fixed compilation with -Oodfa/-O3
|
10 gadi atpakaļ |
nickysn
|
09218c88aa
+ optimizations in tcg8086.g_flags2reg for the case where the carry flag or the
|
10 gadi atpakaļ |
nickysn
|
b26e10d53c
+ generate proper win16 prologue/epilogue for exported routines (we don't yet
|
10 gadi atpakaļ |
nickysn
|
bdfd23cc2e
+ new target switch "FarProcsPushOddBP", which causes the i8086 compiler to push
|
10 gadi atpakaļ |
nickysn
|
a1d29b8251
* always pop DS in huge memory models in asm routines that don't specify
|
10 gadi atpakaļ |
nickysn
|
98ec7a2211
* eliminated the dual initialization of DS in interrupt procedures in the huge
|
10 gadi atpakaļ |
nickysn
|
0fdc62e0f7
+ initialize DS with the current unit's data segment in the function entry code
|
10 gadi atpakaļ |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
10 gadi atpakaļ |
florian
|
35a04ad095
* modified patch of Paul W to replace leave by mov/pop, resolves #26455
|
11 gadi atpakaļ |
Jonas Maebe
|
b745dcc64c
* moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
|
11 gadi atpakaļ |
Jonas Maebe
|
a637fbe596
* moved all g_exception_*() methods to hlcgobj and cleaned them up (no more
|
11 gadi atpakaļ |
nickysn
|
791cd932fd
+ support i8086 far data memory models in tcg8086.g_intf_wrapper
|
11 gadi atpakaļ |
nickysn
|
906d828ee0
* tcg8086.g_copyvaluepara_openarray: fix for the case where ref.segment is
|
11 gadi atpakaļ |
nickysn
|
c9c29a3cd4
+ ignore the source segment, when the destination cgpara is a near pointer in
|
11 gadi atpakaļ |
nickysn
|
c9f8703679
+ set ref.segment to NR_SS for all temps/localvars on i8086. This allows the
|
11 gadi atpakaļ |
nickysn
|
bf6ad0ff78
* fixed tcg8086.g_flags2reg, so it behaves the same way as tcgx86.g_flags2reg
|
11 gadi atpakaļ |
sergei
|
98de3c4e40
* tcg8086.g_flags2reg: call virtual method a_jmp_flags instead of duplicating its functionality, it prevents further changes to this method when adding support for unordered comparison results.
|
11 gadi atpakaļ |
nickysn
|
6fe362a1b0
+ added method is_far to i8086's tcpuprocdef and tcpuprocvardef
|
11 gadi atpakaļ |
nickysn
|
9da1ee0138
* i8086 far data model fixes in the copying of openarray value params
|
11 gadi atpakaļ |
nickysn
|
0a9f738167
+ tcg8086.g_copyvaluepara_openarray: support source to be in a different segment
|
11 gadi atpakaļ |
nickysn
|
1f8280e8f1
* load the destination segment in tcg8086.g_copyvaluepara_openarray from SS
|
11 gadi atpakaļ |
nickysn
|
122f66b11a
+ support passing far addresses in tcg8086.a_loadaddr_ref_cgpara
|
11 gadi atpakaļ |
sergei
|
9c54cdc85d
* x86: Cleaned out addr_far,addr_far_ref used to encode far calls/jumps. NASM (and FPC x86 assembler based on it) already have opsize=S_FAR for this purpose.
|
11 gadi atpakaļ |
nickysn
|
b672bc754a
- rm references to system_i386_darwin and system_i386_iphonesim from
|
11 gadi atpakaļ |
nickysn
|
a31b7d485f
* tcg8086.init_register_allocator: instantiate trgintcpu instead of trgcpu for
|
11 gadi atpakaļ |
nickysn
|
fc29e10349
* allow the use of inc/dec when adding/subtracting 32 or 64-bit constants with
|
11 gadi atpakaļ |
sergei
|
9c1f917e3a
* a_call_ref functionality cannot be implemented efficiently at code generator level, because references need specific preparations at earlier points. Moved this support to tcgcallnode and its x86 descendants, and got rid of all ifdef's around.
|
12 gadi atpakaļ |
nickysn
|
85dd9e5789
+ added a size parameter to optimize_op_const and do a sign extension of the 'a' parameter up from the specified size, so that things like (i and $ffffffff) get optimized away the same way as (i and -1)
|
12 gadi atpakaļ |
nickysn
|
529008e031
* emit MUL (when overflow checking is off), instead of IMUL for OP_IMUL in
|
12 gadi atpakaļ |