Commit History

Author SHA1 Message Date
  sergei 3e20a136f3 * tx86addnode.second_addfloat: use single and double-precision memory locations without loading them on FPU stack if possible. 11 years ago
  sergei ebdbf21650 * tx86addnode.second_cmpfloatsse and tx86addnode.second_cmpfloatavx are identical except instruction opcodes -> merged into second_cmpfloatvector, cleaned up, and allowed constant operands at both sides. 11 years ago
  sergei 965540eab3 * Let tx86addnode.check_left_and_right_fpureg() act as when its argument was=true (removed argument and renamed to force_left_and_right_fpureg). Its action when force_fpureg=false is now coded separately. 11 years ago
  Jonas Maebe 4065483a50 * completed thlcgobj.location_force_fpureg(), use it everywhere and removed 11 years ago
  sergei 6168f563c2 * x86 compares: compare references with constants directly (without loading to register) if possible, this helps to reduce register pressure. 11 years ago
  nickysn be5f49b3e5 * tx86addnode.second_cmpfloat: on i8086 only load the high byte of the FPU 11 years ago
  nickysn ada9ccf6a6 * tx86addnode.second_cmpfloat: do not emit a fwait after fstsw as my own testing 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 6fdadb6248 * 8087 fixes in tx86addnode.second_cmpfloat: 11 years ago
  florian 3c58cad96b * make use of lea if possible 11 years ago
  sergei 5de4bdac40 * tx86addnode.second_cmpfloat: use getresflags() to reduce code duplication. 12 years ago
  florian 507edb16de * use add/sub instead of inc/dec on modern CPUs when optimizing for speed 12 years ago
  florian 0a84f1f10c + avx uses add to multiply by 2 12 years ago
  florian d8ff85846f * don't reuse mm registers used by child nodes 12 years ago
  florian e81d2d1f3b * basic avx support for floating point operations (use -Cfavx to activate) 12 years ago
  nickysn 90ecd72286 * x86_64 compilation fixed after r24752 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
  Jonas Maebe 2dd75e707e * renamed thlcgobj.tcgsize2orddef to defutil.cgsize_orddef 12 years ago
  nickysn 525246f61b * support i8086 far references in tx86addnode.emit_op_right_left 12 years ago
  Jonas Maebe 5051453806 + support for LOC_(C)MMREGISTER in hlcg 12 years ago
  nickysn 4c95592e08 * don't use 'fnstsw ax' if the current cpu level is below 286 12 years ago
  nickysn e6c8ac6694 * use the generic tcgaddnode.second_addsmallset on i8086, because the BTx instructions are 386+ 12 years ago
  florian 6345aee80b * revert r19643: FloatToStr has to handle Nan correctly and should not cause 12 years ago
  Jonas Maebe edd42aa42a * moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for 13 years ago
  pierre 85862e476b Fix for test tw19368 13 years ago
  florian 46cc0209de * make use of mulps/mulpd and haddps/haddpd/hsubpd/hsubps to optimze x*x+y*y and x*x-y*y where x and y might be single or double 14 years ago
  Jonas Maebe 44178f41b6 * don't overwrite register variables when evaluating <=/>= expressions with 14 years ago
  Jonas Maebe fff903a00b * fixed some unnecessary moving of values from cregister to register 15 years ago
  Jonas Maebe d1538ab023 o added ARM VPFv2/VFPv3 support: 15 years ago
  Jonas Maebe 53e52ac6a9 * implementation of 32x32->64 multiplication for i386 based on patch 17 years ago