Commit History

Author SHA1 Message Date
  sergei 0b4d54fcb9 - Delete all position markers from assembler code before optimization. Markers of this kind are not used by optimizer and are expected to be ignored, but ignoring them requires numerous checks in all target-specific optimizers and currently isn't done correctly. In turn, failure to ignore markers prevents optimization of procedure prologues and epilogues. 11 years ago
  Jonas Maebe 362ff5ad01 * only check for _PROPERTY as a regular token, so that 11 years ago
  sergei 96dd464bf2 * Moved fixup_jmps to target-specific classes for powerpc,powerpc64 and MIPS, cleaned out remaining $ifdef's. A slight functionality change is that fixup_jmps is now called before adding the procedure end symbol, not after, but that should not matter. 11 years ago
  sergei eeb15fc445 * Added virtual method tprocinfo.postprocess_code and moved target-specific processing from base class into target-specific descendant classes (ARM and AVR, other targets still to do). 11 years ago
  Jonas Maebe d020a32b9a - removed no longer used tprocdef.fpu_used field for i386/i8086 (the one 11 years ago
  Jonas Maebe b57c95043f + support overriding tdef/tsym methods with target-specific functionality: 11 years ago
  florian 686a2d2f3f + Support omitting the frame pointer on arm even in procedures with incoming parameters 11 years ago
  florian 04464b8622 * do not create an fpc_zeromem node if size=0 11 years ago
  Jonas Maebe f936a48afa * don't change the forward/interface definition of regular forward/interface 11 years ago
  Jonas Maebe 1ac4021178 * moved po_has_inlininginfo from procoptions to procimploptions so that 11 years ago
  sergei 52af9a2c89 * Changed passing of hidden parameters to constructors of class-style objects: VMT is always passed in the first ('self') parameter, and the second one ('vmt', although this name is now misleading) contains flag specifying the constructor behavior and meaning of 'self'. Together with r26656 this removes methodpointer sharing between two parameter node trees, it becomes possible not to put methodpointer into temp, but use node tree below 'self' parameter to do virtual calls. This also matches behavior of Delphi. 11 years ago
  sergei a1dfaa54dd * Fixed exception handling in constructors of TP-style objects to correctly handle cases of statically allocated objects (must call destructor but do not free memory) and objects without destructor (must free memory if it was allocated dynamically). 11 years ago
  florian b1f54b2853 * indentation fixed 11 years ago
  florian fc7dc9e54c * do cse after the init/final code has been inserted, this might enable new cse opportunities 11 years ago
  florian 6e63272ab7 * added missing parenthesis 11 years ago
  nickysn 338d72f564 * extracted the code from psub.translate_registers for generating the name of 11 years ago
  sergei 6ea9ce1077 * Force managed types to be always returned in parameters, independent of target (primitive types were already handled that way; the patch affects small records with fields of managed types). 11 years ago
  florian 99eadb91b3 * run CheckAndWarn to get proper locations for warnings about uninitialized variables 11 years ago
  florian 8be7cfa05f * check the scope of a variable when checking dfa based uninitialized variables, 11 years ago
  florian 57586b69c7 * implicit try...finally frames are added after dfa so we don't have to take care if the subroutine needs/uses those or not 11 years ago
  florian 3cb747f4a7 * mark the node which is the entry of the user code with a flag 11 years ago
  florian cca520abd9 + warn for uninitialized out parameters when dfa is enabled 11 years ago
  florian 1a4584f4c6 + dead store elimination, based on a patch by Jeppe Johansen 11 years ago
  florian e8787c4b48 + constant propagation, based on a patch by Jeppe Johansen 11 years ago
  svenbarth 68a3827539 Fix for Mantis #21051. Correctly handle specializations that occur during the specialization of methods. 12 years ago
  sergei 7fbcf64608 * Disabled r25488 for ARM targets since it causes crashes there, Mantis #25050. 12 years ago
  sergei 1bd43f0ea1 * Outgoing parameters on stack do not need to inhibit stack frame optimization on targets with fixed stack, because there they do not modify stack pointer in the middle of routine. 12 years ago
  florian d4968e054b + arm: tsettings.instructionset 12 years ago
  sergei ac2006898f * Mark procedures with shortstring value parameters as non-leaf, because such parameters generate a call (to fpc_shortstr_assign). 12 years ago
  svenbarth fc79d47b09 Fix for Mantis #24651. Allow pointer comparison for internal expressions (in this case check for valid VMT). 12 years ago