sergei
|
5e8f8f4755
* Use GOT-relative constants for i386 PIC jump tables, they don't need runtime relocations. Now almost ABI-compliant on Linux/BSD (Darwin targets unchanged). Also clean up i8086-specific stuff: using tai_const.create_type_sym(aitconst_ptr,...) generates near pointers on i8086, which is the desired goal.
|
преди 11 години |
sergei
|
31d160aaf5
* x86: clean up and place jump tables into sec_rodata on all targets. Effectively it does not change anything, because sec_rodata with relocations still go into writable data at assembler level.
|
преди 11 години |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
преди 11 години |
nickysn
|
8608969eb8
* tx86casenode.genjumptable: explicitly emit near pointers in the case jump table on i8086, regardless of the memory model
|
преди 12 години |
Jonas Maebe
|
2dd75e707e
* renamed thlcgobj.tcgsize2orddef to defutil.cgsize_orddef
|
преди 12 години |
nickysn
|
1797c8b803
* i8086 fixes for the handling of large sets in tx86innode.pass_generate_code; test/cg/tin.pp works now
|
преди 12 години |
nickysn
|
de345ac191
* added missing setbase fixup in tx86innode.pass_generate_code for the case of LOC_CONSTANT in LOC_REFERENCE for large sets
|
преди 12 години |
nickysn
|
533bd30094
* some more i8086 bug fixes in tx86innode.pass_generate_code
|
преди 12 години |
nickysn
|
967e10ea95
* i8086 fixes in tx86innode.pass_generate_code
|
преди 12 години |
nickysn
|
1f5d384a1e
* i8086 fix in tx86casenode.genlinearlist
|
преди 12 години |
nickysn
|
b930c9a0db
* all the remaining cases of the 'in' operator fixed (hopefully) for i8086
|
преди 12 години |
nickysn
|
8ca0b443b8
* another case of the 'in' operator fixed for i8086 ('x in const', when use_small=false and genjumps=false)
|
преди 12 години |
nickysn
|
d7c9603351
* i8086 fixes for the 'in' operator in the case of 'unsigned,small,non_constant IN smallset'
|
преди 12 години |
florian
|
d6f0a1a0df
* do not generate scaled indicies for case table jumps for i8086
|
преди 12 години |
florian
|
feefcb6d3d
* don't generate dec for case nodes of unsigned types because dec does not set the carry flag, resolves #23503
|
преди 12 години |
florian
|
0b30b0fd5a
* re-enable jump tables for x86-64, they are fixed, see also
|
преди 12 години |
Jonas Maebe
|
edd42aa42a
* moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for
|
преди 13 години |
Jonas Maebe
|
aee5380ae0
* merged trunk up to r20882
|
преди 13 години |
sergei
|
c6d382fe18
* Moved procedure genlinearlist from ti386casenode to tx86casenode. This optimization works well on x86_64, resulting in approximately twice less instructions than when using generic code.
|
преди 14 години |
Jonas Maebe
|
28740dce2d
- removed extra "fordefinition" parameter again from tprocdef.mangledname(),
|
преди 14 години |
Jonas Maebe
|
b023627f6a
* converted tcgcasenode.pass_generate_code() to hlcgobj
|
преди 14 години |
Jonas Maebe
|
0ee702b3a2
* tprocdef.mangledname now gets an extra boolean parameter indicating
|
преди 14 години |
Jonas Maebe
|
8b0301409a
+ i386/iphonesim target for the new iPhoneSimulator in Xcode 3.2.4 and
|
преди 15 години |
Jonas Maebe
|
c6d00a2b1f
* correct the register size holding a smallset < 4 bytes when using "bt"
|
преди 15 години |
Jonas Maebe
|
dd55947b4b
- disabled jump tables for x86_64, because they cause various kinds of
|
преди 16 години |
Jonas Maebe
|
7d459cf12a
* the compiler now explicitly keeps track of the minimally guaranteed
|
преди 16 години |
Jonas Maebe
|
0197192441
* disabled jump tables for darwin/x86_64 for now since they don't work
|
преди 17 години |
florian
|
d05d315aa5
* jump table is written to the data segment so create a proper label for it, resolves #11735
|
преди 17 години |
yury
|
cf7390ea81
* Fixed 'mixed signed/unsigned' and pointer conversion warnings.
|
преди 17 години |
florian
|
a15d8778d6
+ create jump tables for case statements on x86-64
|
преди 17 години |