Commit Graph

597 Commits

Author SHA1 Message Date
yury
eee67af684 * 8086: Fixed using far procvars in a near code memory model and vice versa.
git-svn-id: trunk@46558 -
2020-08-22 22:17:03 +00:00
yury
6a3971c9b6 * 8086: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
git-svn-id: trunk@46557 -
2020-08-22 22:12:40 +00:00
yury
97eb32e6fd * 8086: Also fixed loading a register to a 32-bit ref in case the source register is used as the ref base or index.
git-svn-id: trunk@46491 -
2020-08-19 10:27:19 +00:00
yury
4873ec73a7 * 8086: Fixed loading a 32-bit ref to a register in case the target register is used as the ref base or index.
git-svn-id: trunk@46490 -
2020-08-19 10:20:47 +00:00
yury
e4b717c817 * 8086: More fixes for Ofs() handling.
git-svn-id: trunk@46478 -
2020-08-18 09:52:40 +00:00
yury
2186846ab1 * 8086: Fixed an internal error for cases like FarPtr2 := FarPointer($12345678) + int16;
git-svn-id: trunk@46477 -
2020-08-18 09:19:20 +00:00
yury
222f981dd1 * 8086: Fixed Ofs() for far routines.
resultdef of typeconvnode.typecheck_proc_to_procvar() is reused every time you get an address of a proc. So it is forbidden to change the far/near attribute of resultdef - it leads to mess during code generation. 
  Instead it is needed to use separate reusable resultdefs with new flags pc_far_address and pc_offset.

git-svn-id: trunk@46470 -
2020-08-17 13:37:55 +00:00
yury
631ec77157 * 8086: Fixed calling of local routines with the near attribute in the 'far code' memory models.
git-svn-id: trunk@46431 -
2020-08-14 16:17:18 +00:00
yury
0000682043 * i8086: When a ref points to the 32-bit data, preload the ref base to a temp register to reduce spilling.
git-svn-id: trunk@46204 -
2020-08-03 18:52:17 +00:00
yury
e70c898503 * Removed the i8086 specific hack. Since r46199 the register allocator is able to handle the problem code.
git-svn-id: trunk@46200 -
2020-08-03 16:51:20 +00:00
yury
2839533776 * i8086: Enabled the cs_opt_regvar optimization. It works fine now.
git-svn-id: trunk@45847 -
2020-07-24 16:45:44 +00:00
yury
34a5dfc885 * i8086: Fixed referencing using BP and SP as base when FAR or HUGE memory model is used.
git-svn-id: trunk@45846 -
2020-07-24 16:42:09 +00:00
yury
b1b9d1f341 * i8086: Removed internal error, since global vars can be in registers if used only in pascalmain.
git-svn-id: trunk@45845 -
2020-07-24 16:39:26 +00:00
Jonas Maebe
eb7ba1690e * mark all external assemblers using an LLVM tool using af_llvm
+ added support for constructing target triplets
  * pass "-target triplet" when using an LLVM assembler
   o removed no longer needed $DARWINVERSION and $ARCH parameters
  * consistently use as_clang_gas when clang is used to assembler GAS-style
    assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
  * support pipe assembling when using clang on *nix in all cases

git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +00:00
nickysn
92043c6e20 * call inherited in tcg64f8086.a_op64_reg_ref for OP_NEG and OP_NOT, because it is handled differently after r45302
git-svn-id: trunk@45305 -
2020-05-07 11:51:58 +00:00
nickysn
4f4d8191f0 + generate more optimal code for OP_NOT and OP_NEG in tcg64f8086.a_op64_ref
git-svn-id: trunk@45304 -
2020-05-07 03:34:20 +00:00
nickysn
52572e10e9 * i8086 compilation fixed after r45302
git-svn-id: trunk@45303 -
2020-05-07 02:57:57 +00:00
nickysn
0f6ab0de17 * handle LOC_(C)SUBSETREG/REF in second_NegNot_assign
* changed the way OP_NEG and OP_NOT are handled in op_reg_ref, in order to be
  consistent with op_reg_reg
* introduced op_reg,op_ref,op_subsetreg,op_subsetref and op_loc for the unary
  operations only (OP_NEG,OP_NOT)

git-svn-id: trunk@45302 -
2020-05-07 02:43:02 +00:00
Jonas Maebe
592df7fa59 * disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
that itself, our LLVM code generator can't handle it, and if it did then
    afterwards we would have to spill 90% of those register variables again
    to make them SSA)

git-svn-id: trunk@44062 -
2020-01-29 22:21:07 +00:00
florian
16152cf948 * patch by J. Gareth Moreton: get rid of another pass through the assembler list by integrating OptReferences
into the post optimizer pass

git-svn-id: trunk@44001 -
2020-01-19 20:11:05 +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
ef87879402 * common naming for fpu_none string
git-svn-id: trunk@43768 -
2019-12-24 16:14:28 +00:00
florian
30927039a6 + MULX instruction
* change information for RORX corrected

git-svn-id: trunk@43705 -
2019-12-21 16:20:09 +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
tg74
1454e8b29d new avx512-opcodes VBMI2,VNNI,BITALG ...
git-svn-id: branches/tg74/avx512merge@43406 -
2019-11-06 19:51:01 +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
florian
c2a36826a7 * regenerated
git-svn-id: branches/tg74/avx512merge@43300 -
2019-10-21 20:08:27 +00:00
florian
14167ca84a * potential fix for assembler MOVNTSD
git-svn-id: branches/tg74/avx512merge@43276 -
2019-10-20 15:51:18 +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
tg74
f0002fe644 bugfix 35700 without opcode flags
git-svn-id: branches/tg74/avx512merge@43106 -
2019-10-02 20:39:41 +00:00
florian
3949be6989 * be able to set an AT_* for datablocks
* set AT_TLS if needed

git-svn-id: trunk@43076 -
2019-09-25 21:19:07 +00:00
florian
11319353fd * loading a got depends only on the fact if a got is needed and not if pic shall be generated
git-svn-id: trunk@43075 -
2019-09-25 21:19:06 +00:00
pierre
0fa70759a2 * cutils.pas (size_2_align): Move to..
globals.pas (size_2_align): ...here.
     Change parameter type to asizeuint to avoid overflows.
     (var_align_size, const_align_size): Also change parameter type to asizeuint.
     i386/cpupara.pas, i8086/cpupara.pas, x86_64/cpupara.pas: Add globals
     to implementation uses clause because of size_2_align move.

git-svn-id: trunk@43022 -
2019-09-16 14:50:43 +00:00
tg74
bcc28e834d bugfix 35700 xmmrm - zmmrm, mem32/64
git-svn-id: branches/tg74/avx512merge@42957 -
2019-09-08 19:14:27 +00:00
tg74
d11b041fbb preparing for bugfix 35700
git-svn-id: branches/tg74/avx512merge@42839 -
2019-08-26 19:34:04 +00:00
nickysn
24e3d95fe0 - don't create a heap segment for win16
git-svn-id: trunk@42658 -
2019-08-12 12:51:37 +00:00
florian
70a2b0b260 * restored change information for FMA instructions which got lost somewhere
git-svn-id: branches/tg74/avx512@42651 -
2019-08-11 16:59:10 +00:00
florian
f883dd6dbb Synchronized with trunk, part 2 (make all works, avx-512 support not yet tested, no regression testing yet)
git-svn-id: branches/tg74/avx512@42643 -
2019-08-10 19:38:35 +00:00
florian
746bfced25 Synchronized with trunk, part 1 (only make cycle tested, make all is broken, avx-512 support not yet tested
git-svn-id: branches/tg74/avx512@42642 -
2019-08-10 13:53:20 +00:00
Jonas Maebe
ce598c15ec * factored out the conditions under which add nodes need to perform
overflow checks
   o in particular ensure that cpu-specific overrides don't perform overflow
     checks when nf_internal is set

git-svn-id: trunk@42573 -
2019-08-03 12:19:50 +00:00
Jonas Maebe
3fee990218 * on Mach-O, PECOFF and ELF platforms, write local symbols as hidden/
private_extern (or plain global in case of PECOFF, as the effect is
    the same there): visible across object files, but they become local
    when linked into a binary/library. This enables cross-unit inlining
    of functions accessig implementation-only symbols.

git-svn-id: trunk@42340 -
2019-07-07 21:33:43 +00:00
pierre
243c967967 Commit of new debug feature implemented by J. Gareth Moreton
Allows compilation of compiler using -dDEBUG_NODE_XML
  which will generate a NAME-node-dump.xml file for each 
  unit, program or library compiled,
  containing a XML description of the nodes handled during
  compilation of the unit, program or library.

git-svn-id: trunk@42271 -
2019-06-22 14:08:47 +00:00
Jonas Maebe
a0e35fd1bc * synchronised with trunk till r42118
git-svn-id: branches/debug_eh@42119 -
2019-05-25 13:19:06 +00:00
Jonas Maebe
77658b925b * disable regular array -> dynamic array type coversion support unless
{$modeswitch arraytodynarray} is active (mantis #35576)
   o changed compiler to compile without this modeswitch
   o added the modeswitch to a test that depends on it

git-svn-id: trunk@42118 -
2019-05-25 12:31:32 +00:00
Jonas Maebe
1b6425176b * synchronised with trunk till r42049
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
281b3ad276 * fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit

git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +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
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
a0d796e98d * synchronised with trunk till r41159
git-svn-id: branches/debug_eh@41160 -
2019-02-01 17:01:54 +00:00
florian
4f0da5fcc3 + patch by Marģers to support the x86 assembler instructions blsi, blsr, blsmsk, adcx, adox, movbe, pclmulqdq, resolves #34815 and #34799
+ avxopcodes tests also movbe and pclmulqdq

git-svn-id: trunk@40951 -
2019-01-20 18:50:12 +00:00
Jonas Maebe
882d676bc9 * synchronised with trunk till r40635
git-svn-id: branches/debug_eh@40636 -
2018-12-24 22:12:19 +00:00
Jonas Maebe
acf02ab64b * when creating wrappers, add a prefix to parameter names to prevent them
hiding the method name of the wrapped routine
   o also add a few more '&' prefixes to the generated wrapper code to
     prevent issues when keywords are used as identifiers

git-svn-id: trunk@40634 -
2018-12-24 22:10:06 +00:00
Jonas Maebe
4cd6f59bc3 * changed create_hlcodegen into a procvar, so that we don't have to insert
hlcgllvm in the uses clause of every unit that calls create_hlcodegen
   o prevents dependency cycles that can cause llvm codegen units to init
     before the cpu variants, which is bad since the llvm versions have to
     override the cpu variants in their init code (+ added checks in the
     init code that they are in fact initialised later)

git-svn-id: branches/debug_eh@40410 -
2018-11-29 21:31:15 +00:00
florian
9b0ff05ee8 - get rid of MaxOps, it is redundant with max_operands
* MatchOpType with three operands is only available of max_operands>2

git-svn-id: trunk@40190 -
2018-11-02 21:32:29 +00:00
pierre
9c90f593ab Add global range check disable for i8086 cgcpu and x86 nx86add units
git-svn-id: trunk@40124 -
2018-10-31 23:20:29 +00:00
Jonas Maebe
0b246f3dbd * converted Boolean8 to an internal type, and mapped Boolean to the
new internal pasbool1(type) (part of mantis #34411)
   o apply the _Bool x86-64 parameter passing rules only to pasbool1

git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
tg74
1ef9cc01e6 avx512 disp8*N
git-svn-id: branches/tg74/avx512@39909 -
2018-10-09 21:19:52 +00:00
florian
8943c0584e + patch by J. Gareth Moreton to support BMI2 instructions
+ extended avx test generator with the newly added BMI2 instructions

git-svn-id: trunk@39875 -
2018-10-07 10:10:19 +00:00
tg74
7deacdd036 bugfix avx512 opcodes VFNMSUB231PS,VFPCLASSPS
git-svn-id: branches/tg74/avx512@39783 -
2018-09-21 05:34:04 +00:00
tg74
14d392fd0e avx512 broadcast for special opcodes vcvt...
git-svn-id: branches/tg74/avx512@39779 -
2018-09-19 21:29:49 +00:00
tg74
fba72b280b avx512 broadcast vcvt...,vfpclass...
git-svn-id: branches/tg74/avx512@39778 -
2018-09-19 15:28:15 +00:00
tg74
4265f4d6a5 avx512 broadcast for special opcodes vfpclass.., vcvt...
git-svn-id: branches/tg74/avx512@39768 -
2018-09-19 06:25:42 +00:00
tg74
f3e18cedf6 bugfix opcode definition vrsqrt..., vscale...
git-svn-id: branches/tg74/avx512@39755 -
2018-09-14 09:09:35 +00:00
tg74
865563fc82 bugfixes x86ins.dat avx512-opcodes vpexpand..., vptest..., vrcp...
git-svn-id: branches/tg74/avx512@39754 -
2018-09-14 05:19:28 +00:00
tg74
2c40a09d04 bugfixes x86ins.dat avx512-opcodes vf...
git-svn-id: branches/tg74/avx512@39753 -
2018-09-13 22:01:23 +00:00
tg74
1bc0ecec11 bugfix opcode definition vfmadd132pd/ps
git-svn-id: branches/tg74/avx512@39751 -
2018-09-13 11:04:09 +00:00
tg74
ac26adf7c9 bugfix avx512-opcodes
git-svn-id: branches/tg74/avx512@39745 -
2018-09-12 13:59:29 +00:00
tg74
dd967ecfee remove any gather/scatter opcodes for nights mill
git-svn-id: branches/tg74/avx512@39742 -
2018-09-12 09:59:04 +00:00
tg74
608992ecf5 minor bugfixes avx512 tests
git-svn-id: branches/tg74/avx512@39740 -
2018-09-12 05:03:05 +00:00
tg74
c611e4814a new avx512 opcodes
git-svn-id: branches/tg74/avx512@39720 -
2018-09-10 06:19:45 +00:00
tg74
1d9cbb4dcb new AVX512 opcodes
git-svn-id: branches/tg74/avx512@39705 -
2018-09-03 05:40:44 +00:00
tg74
914e31dbd1 new AVX512 instructions vextracti..,vextractf..
git-svn-id: branches/tg74/avx512@39674 -
2018-08-27 06:06:27 +00:00
tg74
6985da744b change x86ins.dat vmovq for test tasm9
git-svn-id: branches/tg74/avx512@39654 -
2018-08-20 13:31:42 +00:00
tg74
2b1da37d66 new avx512 instructions and bugfixes avx512
git-svn-id: branches/tg74/avx512@39636 -
2018-08-19 10:18:32 +00:00
tg74
867d145e50 support vector operand bcst,{sae},{er} + k-register
git-svn-id: branches/tg74/avx512@39457 -
2018-07-16 17:06:57 +00:00
florian
d4c65cdac4 * better register de-allocation after CWD/CWB
git-svn-id: trunk@39413 -
2018-07-07 21:38:42 +00:00
nickysn
fdc896ad0a + inline support for the x86 'in' and 'out' instructions. Currently only enabled
in the i8086-msdos 'ports' unit, but will be enabled on other targets (e.g.
  go32v2) in the future as well. 32-bit 'in' and 'out' not inlined on i8086, but
  will be on i386 and x86_64.

git-svn-id: trunk@39362 -
2018-07-03 17:01:42 +00:00
tg74
4dc5442fa5 support vector operand writemask,zeroflag
git-svn-id: branches/tg74/avx512@39359 -
2018-07-02 20:20:03 +00:00
tg74
31e4d4ef5e AVX512 support for MMRegister xmm16..31 and ymm16..31, zmm0..31, vpaddsb support AVX512
git-svn-id: branches/tg74/avx512@39196 -
2018-06-08 06:53:35 +00:00
pierre
019da9517f Set return value when calling inherited in ti8086inlinenode.pass_typecheck_cpu
git-svn-id: trunk@39100 -
2018-05-23 20:43:40 +00:00
nickysn
a275d15da2 + added an i8086-specific column in x86reg.dat for the dwarf register numbers
and filled it with the dwarf register mapping, used by Open Watcom (Watcom
  also uses this mapping on i386, but we don't need to support their debugger on
  i386 for now)

git-svn-id: trunk@39097 -
2018-05-23 15:12:58 +00:00
nickysn
20abb13bca - do not compile in the stabs debug info support for the i8086 target
git-svn-id: trunk@39015 -
2018-05-17 14:47:39 +00:00
nickysn
b80642c384 + started implementing support for generating Microsoft CodeView debug
information. Only enabled on i8086 (for now). Does not do much yet, but
  hopefully, soon it'll start emitting line number information for i8086-msdos
  that is usable by DOS debuggers.

git-svn-id: trunk@39006 -
2018-05-16 15:25:33 +00:00
nickysn
d9925f7074 - removed pocall_far16 from the supported calling conventions of the i8086
code generator

git-svn-id: trunk@38938 -
2018-05-06 15:14:40 +00:00
nickysn
eb95dcb85f - removed pocall_mwpascal from the supported calling conventions of the i8086
code generator

git-svn-id: trunk@38937 -
2018-05-06 14:40:08 +00:00
nickysn
4fbc658184 - removed check for system_i386_wince in i8086's cpupara
git-svn-id: trunk@38936 -
2018-05-06 14:30:05 +00:00
nickysn
0a12bc4697 - removed pocall_oldfpccall from the supported calling conventions of the i8086
code generator

git-svn-id: trunk@38935 -
2018-05-06 14:07:31 +00:00
Jonas Maebe
d69ad8fa41 * removed temppos field again from parameter locations: they're not allocated
by the temp manager of the current procedure

git-svn-id: trunk@38858 -
2018-04-27 19:18:55 +00:00
nickysn
9a6e490699 * changed the 'register' and 'cdecl' calling conventions on i8086, so they don't
modify the SI and DI registers. For 'register', this makes it compatible with
  Borland C++'s __fastcall calling convention, while 'cdecl' becomes compatible
  with Borland C, Microsoft C and Watcom C.

git-svn-id: trunk@38824 -
2018-04-23 16:12:16 +00:00
Jonas Maebe
4686f61002 * keep track of the temp position separately from the offset in references,
so that they can still be freed after the reference has been changed
    (e.g. in case of array indexing or record field accesses) (mantis #33628)

git-svn-id: trunk@38814 -
2018-04-22 17:03:16 +00:00
nickysn
518cdf9674 * replaced the saved_XXX_registers arrays with virtual methods inside
tcpuparamanager, very similar to the existing get_volatile_registers_XXX. The
  new methods are called get_saved_registers_XXX, where XXX is the register
  type ("int", "address", "fpu" or "mm")

git-svn-id: trunk@38794 -
2018-04-19 21:22:16 +00:00
nickysn
bd3d35f2da + add support for passing 32-bit values in a pair of registers in
tcg8086.a_load_const_cgpara. This fixes passing const longint parameters in
  dx:ax when using the register calling convention on i8086.

git-svn-id: trunk@38785 -
2018-04-18 15:40:09 +00:00
nickysn
a73aabcc39 * support loading longint in dx:ax when using the 'register' calling convention
on i8086. This is compatible with Borland C++ 3.1's _fastcall. Note that
  passing parameters in multiple registers is not yet implemented, so using this
  will cause internal errors, but these will be fixed later (and the 'register'
  calling convention was never officially supported on i8086).

git-svn-id: trunk@38784 -
2018-04-18 15:36:55 +00:00
nickysn
91707deba7 * changed the registers, used by the 'register' calling convention on i8086 to
ax,dx,bx instead of ax,dx,cx, because that makes it more compatible with
  Borland C++ 3.1's _fastcall calling convention

git-svn-id: trunk@38783 -
2018-04-18 13:46:56 +00:00
nickysn
42ebdbe277 + introduce po_hasnearfarcallmodel (specifies that the near/far call model was
specified explicitly). This will be useful, when we implement an automatic
  call model selection optimization.

git-svn-id: trunk@38732 -
2018-04-11 12:31:09 +00:00
nickysn
17823821ca * make procedures and functions, declared in the interface part of a unit in an
i8086 far code memory model to be 'far' even in {$F-} mode. This is TP7
  compatible.

git-svn-id: trunk@38728 -
2018-04-10 15:37:28 +00:00
nickysn
dcdd498524 + allow far procedures and functions in the tiny, small and compact i8086 memory
models. Even though, they generate less efficient code, they are useful when
  interacting with external APIs (e.g. declaring callbacks for the Win16 API).

git-svn-id: trunk@38726 -
2018-04-10 13:26:14 +00:00
nickysn
e1d0e7572e * i8086 TP7 compatibility fixes, related to obtaining procedure addresses:
o The @ and Addr() operators in TP or Delphi mode can now be applied to both
    near and far procedures and they always produce a CodePointer, regardless of
    the call model of the procedure.
  o Ofs() and Seg() can now also be applied to both near and far procedures.
  o The @ and Addr() operators in non-TP/Delphi modes, as well as the procedure
    name itself in TP/Delphi modes now can be applied to both near and far
    procedures and produce a near or a far procvar.

git-svn-id: trunk@38691 -
2018-04-05 15:09:12 +00:00
nickysn
58ead31f49 * optimized ofs(proc) on i8086, so it only loads the offset in all memory models
git-svn-id: trunk@38682 -
2018-04-04 15:26:47 +00:00
nickysn
c7503ca291 + introduced tabstractprocdef.ofs_address_type - the address type, generated for
ofs()

git-svn-id: trunk@38681 -
2018-04-04 15:16:42 +00:00