Commit History

Author SHA1 Message Date
  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
  nickysn 5f7d432ff9 i8086 fixes in Tcgx86.g_concatcopy and TCGSize2OpSize 12 years ago
  Jonas Maebe 5d628b29bb * set the subregsize of OS_M64 SSE registers to R_SUBQ so we can 12 years ago
  yury e13e2e1697 * Turn off special handling of interrupt calling convention for i386-android. 12 years ago
  yury 0960ee2034 * Add missing checks for android target. 12 years ago
  sergei 7530fb3352 * tcgx86.make_simple_ref: handle references to absolute addresses (these are quite rare on x86_64, but still worth to handle correctly). 12 years ago
  florian d7e0f07aab + UseAVX check 13 years ago
  florian 283ff05127 * merged avx support in inline assembler developed by Torsten Grundke 13 years ago