pi_operand2ge_operand.cc

Go to the documentation of this file.
00001 /*!
00002         \file
00003         \author jaz
00004 */
00005 #include <lestes/md/instructions/pi_operand2ge_operand.g.hh>
00006 #include <lestes/backend_v2/intercode/pi.g.hh>
00007 #include <lestes/backend_v2/intercode/ge.g.hh>
00008 #include <lestes/backend_v2/intercode/pi_mem_factory.g.hh>
00009 
00010 package(lestes);
00011 package(md);
00012 package(instructions);
00013 
00014 using namespace ::lestes::backend_v2::intercode;
00015 
00016 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_preg(ptr< ::lestes::backend_v2::intercode::pi_preg > pi) {
00017         return ge_operand_reg::create(pi->type_get(), NULL, pi);
00018 }
00019 
00020 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_lit(ptr< ::lestes::backend_v2::intercode::pi_lit > pi) {
00021         return ge_operand_imm::create(pi->type_get(), NULL, pi, pi->value_get());
00022 }
00023 
00024 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_decl(ptr< ::lestes::backend_v2::intercode::pi_mem_decl > pi) {
00025         return ge_operand_mem::create(pi->type_get(), NULL, pi, pi->factory_get());
00026 }
00027 
00028 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_lit(ptr< ::lestes::backend_v2::intercode::pi_mem_lit > pi){
00029         return ge_operand_mem::create(pi->type_get(), NULL, pi, pi->factory_get());
00030 }
00031 
00032 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_member(ptr< ::lestes::backend_v2::intercode::pi_mem_member > pi){
00033         return ge_operand_mem::create(pi->type_get(), NULL, pi, pi->factory_get());
00034 }
00035 
00036 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_stack(ptr< ::lestes::backend_v2::intercode::pi_mem_stack > pi){
00037         return ge_operand_mem::create(pi->type_get(), NULL, pi, pi->factory_get());
00038 }
00039 
00040 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_preg(ptr< ::lestes::backend_v2::intercode::pi_mem_preg > pi){
00041         return ge_operand_reg::create(pi->type_get(), NULL, pi);
00042 }
00043 
00044 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_temp(ptr< ::lestes::backend_v2::intercode::pi_mem_temp > pi){
00045         return ge_operand_mem::create(pi->type_get(), NULL, pi, pi->factory_get());
00046 }
00047 
00048 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_operand2ge_operand::visit_pi_mem_ptr_deref(ptr< ::lestes::backend_v2::intercode::pi_mem_ptr_deref > pi) {
00049         ptr<pi_mf_ptr_deref> mf = pi->factory_get().dncast<pi_mf_ptr_deref>();
00050         
00051         if ( !mf->ge_addr_get() ) {
00052                 mf->ge_addr_set(this->convert(mf->addr_get()).dncast<ge_operand_reg>());                
00053         }
00054         
00055         return ge_operand_mem::create(pi->type_get(), NULL, pi, mf);
00056 }
00057 
00058 end_package(instructions);
00059 end_package(md);
00060 end_package(lestes);
00061 

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