Commit History

Author SHA1 Message Date
  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
  nickysn ec497ae11e + the regular tcgx86.a_call_name and .a_call_name_static moved to .a_call_name_near and .a_call_name_static_near, because a_call_name and a_call_name_static are going to be overriden in tcg8086 12 years ago
  nickysn ec76b2cf40 * refactored the segment-in-integer-register reference support, so it's handled in make_simple_ref, instead of all over the place in the code generator 12 years ago
  nickysn c9c882c30a * always use 16-bit pushes for pushing/popping the segment registers on i8086 in Tcgx86.g_concatcopy 12 years ago
  nickysn e243b6b869 * never use the 66h prefix when pushing/popping segment registers on i8086, as the stack is aligned on 2 bytes there 12 years ago
  nickysn c2e3fb5918 + emit proper interrupt procedure entry/exit code on i8086 12 years ago
  nickysn 0a8e008a0d + the ES register made volatile on i8086 as per the 16-bit x86 calling conventions 12 years ago
  nickysn e4f3dd1264 * do not emit shl/shr with a const different than 1 on 8086 12 years ago
  nickysn fbc41991f9 * i8086 fixes in tcgx86.a_op_reg_reg for 16-bit OP_SHR,OP_SHL,OP_SAR,OP_ROL,OP_ROR 12 years ago
  florian edd4c1ce4b * proper fix to avoid sp relative adressing as r23867 tries 12 years ago
  florian b321f867c6 + trgintcpu.add_cpu_interferences for i8086 so references are properly build 12 years ago
  nickysn 95b15d15bd another nested ifdef cleaned up 12 years ago
  nickysn 981f0a5c6c nested ifdefs converted to series of elseif + some other ifdefs cleaned up 12 years ago