preasmgen_body_changes_base.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \author jaz
00006 */
00007 
00008 #ifndef lestes__md__functions__preasmgen_body_changes_base_g_hh__included
00009 #define lestes__md__functions__preasmgen_body_changes_base_g_hh__included
00010 
00011 #include <lestes/md/common.hh>
00012 #include <lestes/std/list.hh>
00013 
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(std);
00017 class object;
00018 end_package(std);
00019 end_package(lestes);
00020 
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025 class ss_function_declaration;
00026 end_package(sem);
00027 end_package(cplus);
00028 end_package(lang);
00029 end_package(lestes);
00030 
00031 package(lestes);
00032 package(backend_v2);
00033 package(intercode);
00034 class ge_pi;
00035 end_package(intercode);
00036 end_package(backend_v2);
00037 end_package(lestes);
00038 
00039 package(lestes);
00040 package(md);
00041 package(functions);
00042 
00043 
00044 class preasmgen_body_changes_base;
00045 
00046 
00047 /*! \brief Inserts additional code (e.g. function prologue ) to a function body that is needed for correct execution of a code generated by asm generator.
00048 
00049 Note: A concrete derived class is target dependent and it is placed in 
00050 /target/machine/${TARGET_CPU}/lestes/md/functions/ directory. 
00051 */
00052 class preasmgen_body_changes_base : public ::lestes::std::object {
00053 public:
00054         //! The method function_get returns the value of the field preasmgen_body_changes_base::function.
00055         ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function_get() const;
00056 
00057         //! The method function_set sets the field preasmgen_body_changes_base::function to the given value.
00058         void function_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &);
00059 
00060         //! The method body_get returns the value of the field preasmgen_body_changes_base::body.
00061         ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > body_get() const;
00062 
00063         //! The method body_set sets the field preasmgen_body_changes_base::body to the given value.
00064         void body_set(const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > & );
00065 
00066         //! Emits code to the function's body..
00067         virtual void process_body() abstract;
00068 
00069         //! Returns the function's body with the additional code.
00070         virtual ptr<list<srp< ::lestes::backend_v2::intercode::ge_pi > > > get_result() abstract;
00071 
00072         
00073 
00074         //! for purposes of dumping
00075         virtual ptr<reflection_list> reflection_get() const;
00076         //! for purposes of dumping
00077         virtual ptr<field_list_list> field_values_get() const;
00078         
00079 protected:
00080         //! Generated constructor for class preasmgen_body_changes_base.
00081         preasmgen_body_changes_base (
00082                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__preasmgen_body_changes_base__function,
00083                 ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__preasmgen_body_changes_base__body);
00084 
00085         //! Marking routine for class preasmgen_body_changes_base. 
00086         virtual void gc_mark();
00087 
00088 private:
00089         //! Declaration of the function.
00090         srp< ::lestes::lang::cplus::sem::ss_function_declaration > function;
00091         //! The function's body.
00092         srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > >  body;
00093         static ptr<reflection_list> reflection;
00094         
00095 }; // preasmgen_body_changes_base
00096 
00097 
00098 end_package(functions);
00099 end_package(md);
00100 end_package(lestes);
00101 
00102 #endif // lestes__md__functions__preasmgen_body_changes_base_g_hh__included

Generated on Mon Feb 12 18:23:10 2007 for lestes by doxygen 1.5.1-20070107