Commit History

Author SHA1 Message Date
  sergei 6b1f021fcf - Removed remaining optimizations that duplicate functionality of tcg.optimize_op_const. 11 years ago
  nickysn 1f7b14f38e * fixed the conversion of powerof2 mul/imuls to lea in tcgx86.a_op_const_reg_reg 11 years ago
  nickysn cc1faad3d2 + make use of the 3-operand form of IMUL on i386 and x86_64 11 years ago
  nickysn 5d75bf4f92 * always use IMUL instead of MUL on i386, when doing a 32->32 multiplication 11 years ago
  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. 11 years ago
  florian e210d5f30e + cpu_capabilites for x86_64 and i386 11 years ago
  sergei f2096de53a * tcg386.g_proc_exit: instead of recalculating stack size, use current_procinfo.final_localsize which was calculated in g_proc_entry. 11 years ago
  sergei 179586f589 + SEH support for Win32. Enable by cycling with OPT=-dTEST_WIN32_SEH. 11 years ago
  florian 4d5119bf1c * fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables 11 years ago
  nickysn 7ae59a62c5 * emit a FWAIT after a floating point store, when targeting the 8087 and 80287 11 years ago
  nickysn dea947f87b * fixed tcgx86.a_op_const_ref for shl/shr/sar/rol/ror on i8086 and x86_64 11 years ago
  nickysn d0f988f7a8 * don't use LEA in the code generator on i8086, as this breaks it quite badly. 11 years ago
  florian 7fc1d70e49 * do reg2=reg1*const by lea if possible 11 years ago
  florian 3c58cad96b * make use of lea if possible 11 years ago
  nickysn 67fdcb02f2 * in tcgx86.make_simple_ref, on the i8086, emit 'mov es, reg', instead of 12 years ago
  nickysn 6be9627e74 * use all kinds of copy and not just copy_string in Tcgx86.g_concatcopy, when 12 years ago
  nickysn bd0585274e * tsettings.enablecld converted to a targetswitch ts_cld 12 years ago
  nickysn 52fcc0a407 + added a new x86-specific compiler option 'enablecld', which controls whether 12 years ago
  Jonas Maebe 3b9b6a0cd7 * explicitly define the asmsymbols for Darwin call stubs as local 12 years ago
  sergei e1550e1aed * Restore registers in correct order (for push/pop it *does* matter), fixes crashes caused by r25224. 12 years ago
  sergei 5c4abfa75a + Implemented saving/restoring registers using PUSH/POP instructions on i386 targets with non-fixed stack. Provides some advantage in code size (e.g. the compiler becomes about 20KBytes smaller). 12 years ago
  sergei a21a20d559 + i8086-specific version of g_stackpointer_alloc. 12 years ago
  sergei 1f72143eef * In preparation for fixing Mantis #24791: Copy related code from tcgx86.g_proc_entry to tcgx86_64.g_proc_entry, and remove win64-specific stuff from tcgx86 version. 12 years ago
  florian 507edb16de * use add/sub instead of inc/dec on modern CPUs when optimizing for speed 12 years ago
  nickysn 7e70a5f763 * i8086 fix after r25010: i8086 doesn't support lea sp,[sp-XXX] 12 years ago
  florian 94cf650d9a * use lea to adjust stack pointer, this is equal or faster on all modern CPUs than add/sub 12 years ago
  florian 466eb4c684 * use MOVAPS/MOVAPD for reg -> reg moves to reduce data dependencies 12 years ago
  florian e81d2d1f3b * basic avx support for floating point operations (use -Cfavx to activate) 12 years ago
  nickysn 62316da236 * a_call_reg moved to a_call_reg_near 12 years ago
  nickysn 604b7c9deb + added cg.a_call_ref_near and a_call_ref_far 12 years ago