Commit History

Autor SHA1 Mensaxe Data
  nickysn 7a873f495d * use the stack segment for SP-relative addresses in Tcgx86.g_concatcopy in %!s(int64=11) %!d(string=hai) anos
  nickysn ee20ecfcf2 * tcgx86.make_simple_ref: in i8086 memory models with DS<>SS, add an SS: segment %!s(int64=11) %!d(string=hai) anos
  nickysn b36a98ce51 + Tcgx86.g_concatcopy: added support for memory models with DS<>SS %!s(int64=11) %!d(string=hai) anos
  nickysn e9e4cc8bcb * Tcgx86.g_concatcopy: use boolean variables saved_ds and saved_es to keep track %!s(int64=11) %!d(string=hai) anos
  nickysn 096bba90da * fixed Tcgx86.g_concatcopy not using the correct push instruction size when %!s(int64=11) %!d(string=hai) anos
  pierre 044891fd94 Avoid range check error in a_op_const_reg_reg %!s(int64=11) %!d(string=hai) anos
  nickysn 229ebf33a8 + support getting the address of far references on i8086 in %!s(int64=11) %!d(string=hai) anos
  florian 37b34edbc6 * do not reuse registers when calculating addresses in pic mode %!s(int64=11) %!d(string=hai) anos
  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. %!s(int64=11) %!d(string=hai) anos
  sergei 0d3f36eebf - Remove references to global variable 'cg' from methods of tcg and some of its descendants. %!s(int64=11) %!d(string=hai) anos
  florian 28a8dc42c6 * fix tcgx86.a_op_reg_reg on x86-64 and make use of it %!s(int64=11) %!d(string=hai) anos
  florian 7d7bf1d877 + make use of SHLX/SHRX on CPUs supporting BMI2 %!s(int64=11) %!d(string=hai) anos
  florian 48ae2d215a + concatcopy variants using sse and avx, only activated if optimization for size is done because at least on an i7-4770 it has shown no benefit %!s(int64=11) %!d(string=hai) anos
  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) %!s(int64=11) %!d(string=hai) anos
  sergei 6b1f021fcf - Removed remaining optimizations that duplicate functionality of tcg.optimize_op_const. %!s(int64=11) %!d(string=hai) anos
  nickysn 1f7b14f38e * fixed the conversion of powerof2 mul/imuls to lea in tcgx86.a_op_const_reg_reg %!s(int64=11) %!d(string=hai) anos
  nickysn cc1faad3d2 + make use of the 3-operand form of IMUL on i386 and x86_64 %!s(int64=11) %!d(string=hai) anos
  nickysn 5d75bf4f92 * always use IMUL instead of MUL on i386, when doing a 32->32 multiplication %!s(int64=11) %!d(string=hai) anos
  nickysn 820b667e1b - rm the OP_IMUL to SHL optimization from tcgx86.a_op_const_reg and tcgx86.a_op_const_ref, because it's already done in optimize_op_const, which is called in the beginning of both methods. %!s(int64=11) %!d(string=hai) anos
  florian e210d5f30e + cpu_capabilites for x86_64 and i386 %!s(int64=11) %!d(string=hai) anos
  sergei f2096de53a * tcg386.g_proc_exit: instead of recalculating stack size, use current_procinfo.final_localsize which was calculated in g_proc_entry. %!s(int64=11) %!d(string=hai) anos
  sergei 179586f589 + SEH support for Win32. Enable by cycling with OPT=-dTEST_WIN32_SEH. %!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=12) %!d(string=hai) anos
  nickysn 7ae59a62c5 * emit a FWAIT after a floating point store, when targeting the 8087 and 80287 %!s(int64=12) %!d(string=hai) anos
  nickysn dea947f87b * fixed tcgx86.a_op_const_ref for shl/shr/sar/rol/ror on i8086 and x86_64 %!s(int64=12) %!d(string=hai) anos
  nickysn d0f988f7a8 * don't use LEA in the code generator on i8086, as this breaks it quite badly. %!s(int64=12) %!d(string=hai) anos
  florian 7fc1d70e49 * do reg2=reg1*const by lea if possible %!s(int64=12) %!d(string=hai) anos
  florian 3c58cad96b * make use of lea if possible %!s(int64=12) %!d(string=hai) anos
  nickysn 67fdcb02f2 * in tcgx86.make_simple_ref, on the i8086, emit 'mov es, reg', instead of %!s(int64=12) %!d(string=hai) anos
  nickysn 6be9627e74 * use all kinds of copy and not just copy_string in Tcgx86.g_concatcopy, when %!s(int64=12) %!d(string=hai) anos