Commit History

Autor SHA1 Mensaxe Data
  Jonas Maebe ba1b4b1c92 + support for verifying whether a case statements handles all possibilities %!s(int64=6) %!d(string=hai) anos
  yury e5c2d13671 * Do not set pi_needs_got in current_procinfo.flags at the node level, since the GOT usage can only be estimated there. Instead set the pi_needs_got flag at places where the GOT register is accessed during the code generation. This eliminates generation of the unneeded initialization of the GOT register and fixes linker errors when the _GLOBAL_OFFSET_TABLE_ symbol is referenced but no actual GOT references are present. %!s(int64=6) %!d(string=hai) anos
  Jonas Maebe 07bd4ba517 * let all the case code generation work with tconstexprint instead of aint, %!s(int64=6) %!d(string=hai) anos
  florian a2cee252e8 * when optimizing range checks in case nodes, unsigned comparisions must be used, resolves #34782 %!s(int64=6) %!d(string=hai) anos
  florian bd4b7a6bc4 * more case fixes %!s(int64=6) %!d(string=hai) anos
  florian f6e32ae90e * (modified) path by Gareth Moreton to fix case handling %!s(int64=6) %!d(string=hai) anos
  florian 7f5c2fa3aa * (modified) patch by Gareth Moreton: Speed improvement in case blocks, resolves #0034762 %!s(int64=6) %!d(string=hai) anos
  yury 4357caaad8 * Removed unused local vars. %!s(int64=6) %!d(string=hai) anos
  florian 50dba9ad66 * if both labels of a case label are equal, we still cannot skip the comparison in a jump tree, resolves #31589 %!s(int64=8) %!d(string=hai) anos
  florian d5754cf47c * create jmp trees for really big case statements %!s(int64=8) %!d(string=hai) anos
  Jonas Maebe a25ebbba3e + added volatility information to all memory references %!s(int64=8) %!d(string=hai) anos
  florian 57f93ed40d * correctly generate accesses to jump tables if it contains negative entries, resolves issue #30119 %!s(int64=9) %!d(string=hai) anos
  Jonas Maebe da696057ab * converted register_maybe_adjust_setbase() to the high level code generator %!s(int64=9) %!d(string=hai) anos
  Jonas Maebe ab22aaa2b7 * adjust the set base for i8086 before loading it into cx as a shift count %!s(int64=9) %!d(string=hai) anos
  Jonas Maebe 687bb15299 * renamed getdatalabel() to getglobaldatalabel %!s(int64=10) %!d(string=hai) anos
  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. %!s(int64=11) %!d(string=hai) anos
  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. %!s(int64=11) %!d(string=hai) anos
  florian 4d5119bf1c * fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables %!s(int64=11) %!d(string=hai) anos
  nickysn 8608969eb8 * tx86casenode.genjumptable: explicitly emit near pointers in the case jump table on i8086, regardless of the memory model %!s(int64=12) %!d(string=hai) anos
  Jonas Maebe 2dd75e707e * renamed thlcgobj.tcgsize2orddef to defutil.cgsize_orddef %!s(int64=12) %!d(string=hai) anos
  nickysn 1797c8b803 * i8086 fixes for the handling of large sets in tx86innode.pass_generate_code; test/cg/tin.pp works now %!s(int64=12) %!d(string=hai) anos
  nickysn de345ac191 * added missing setbase fixup in tx86innode.pass_generate_code for the case of LOC_CONSTANT in LOC_REFERENCE for large sets %!s(int64=12) %!d(string=hai) anos
  nickysn 533bd30094 * some more i8086 bug fixes in tx86innode.pass_generate_code %!s(int64=12) %!d(string=hai) anos
  nickysn 967e10ea95 * i8086 fixes in tx86innode.pass_generate_code %!s(int64=12) %!d(string=hai) anos
  nickysn 1f5d384a1e * i8086 fix in tx86casenode.genlinearlist %!s(int64=12) %!d(string=hai) anos
  nickysn b930c9a0db * all the remaining cases of the 'in' operator fixed (hopefully) for i8086 %!s(int64=12) %!d(string=hai) anos
  nickysn 8ca0b443b8 * another case of the 'in' operator fixed for i8086 ('x in const', when use_small=false and genjumps=false) %!s(int64=12) %!d(string=hai) anos
  nickysn d7c9603351 * i8086 fixes for the 'in' operator in the case of 'unsigned,small,non_constant IN smallset' %!s(int64=12) %!d(string=hai) anos
  florian d6f0a1a0df * do not generate scaled indicies for case table jumps for i8086 %!s(int64=12) %!d(string=hai) anos
  florian feefcb6d3d * don't generate dec for case nodes of unsigned types because dec does not set the carry flag, resolves #23503 %!s(int64=12) %!d(string=hai) anos