literal_loader_base.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 #ifndef lestes__md__literals__literal_loader_base_g_hh__included
00004 #define lestes__md__literals__literal_loader_base_g_hh__included
00005 
00006 #include <lestes/std/map.hh>
00007 #include <lestes/md/common.hh>
00008 
00009 #include <lestes/std/objectize_macros.hh>
00010 package(lestes);
00011 package(std);
00012 class object;
00013 end_package(std);
00014 end_package(lestes);
00015 
00016 package(lestes);
00017 package(backend_v2);
00018 package(intercode);
00019 class pi_lit;
00020 end_package(intercode);
00021 end_package(backend_v2);
00022 end_package(lestes);
00023 
00024 package(lestes);
00025 package(backend_v2);
00026 package(intercode);
00027 class pi_pi;
00028 end_package(intercode);
00029 end_package(backend_v2);
00030 end_package(lestes);
00031 
00032 package(lestes);
00033 package(backend_v2);
00034 package(intercode);
00035 class pi_sp;
00036 end_package(intercode);
00037 end_package(backend_v2);
00038 end_package(lestes);
00039 
00040 package(lestes);
00041 package(backend_v2);
00042 package(intercode);
00043 class pi_preg;
00044 end_package(intercode);
00045 end_package(backend_v2);
00046 end_package(lestes);
00047 
00048 package(lestes);
00049 package(md);
00050 package(literals);
00051 
00052 
00053 class literal_loader_base;
00054 
00055 
00056 /*! \brief Literal loader.
00057 
00058 Interface generates list of pseudoinstructions that load value of a literal to a register.
00059 Generated pseudoinstructions differ according to literal kind. If literal can act as immediate then it is
00060 loaded by single pi_ldi pseudoinstruction. Global asm declaration is generated otherwise (managed literal) and literal is
00061 referenced through its address.
00062 
00063 Note: A concrete derived class is target dependent and it is placed in 
00064 /target/machine/${TARGET_CPU}/lestes/md/literals/ directory. 
00065 */
00066 class literal_loader_base : public ::lestes::std::object {
00067 public:
00068         // WARNING: Detailed doxygen description for method
00069         // should be near it's implementation, not in XML file.
00070 
00071         /*! \brief Generates list of pseudoinstructions that loads literal to a pseudoregister.
00072 
00073         \param preg A register operand.
00074                                 \param lit A literal.
00075                                 \param psp A sequencepoint that is set as psp to generated code.
00076                                 \param nsp A sequencepoint that is set as nsp to generated code.
00077                                 \return ge-level intercode that loads literal to a pseudoregister.
00078                         
00079         */
00080         virtual ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > generate_load(ptr< ::lestes::backend_v2::intercode::pi_preg > preg, ptr< ::lestes::backend_v2::intercode::pi_lit > lit, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp) abstract;
00081 
00082         
00083 
00084         //! for purposes of dumping
00085         virtual ptr<reflection_list> reflection_get() const;
00086         //! for purposes of dumping
00087         virtual ptr<field_list_list> field_values_get() const;
00088         
00089 protected:
00090         //! Generated constructor for class literal_loader_base.
00091         literal_loader_base (
00092                 );
00093 
00094         //! Marking routine for class literal_loader_base. 
00095         virtual void gc_mark();
00096 
00097 private:
00098         static ptr<reflection_list> reflection;
00099         
00100 }; // literal_loader_base
00101 
00102 
00103 end_package(literals);
00104 end_package(md);
00105 end_package(lestes);
00106 
00107 #endif // lestes__md__literals__literal_loader_base_g_hh__included

Generated on Mon Feb 12 18:22:38 2007 for lestes by doxygen 1.5.1-20070107