}};
  
  
 +def template LoadInitiateAcc {{
 +    Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc,
 +                                      Trace::InstRecord *traceData) const
 +    {
 +        Addr EA;
 +        Fault fault = No_Fault;
 +        %(mem_acc_type)s Mem = 0;
 +
 +        %(fp_enable_check)s;
 +        %(op_src_decl)s;
 +        %(op_rd)s;
 +        %(ea_code)s;
 +
 +        if (fault == No_Fault) {
 +            fault = xc->read(EA, (uint%(mem_acc_size)d_t &)Mem, memAccessFlags);
 +        }
 +
 +        return fault;
 +    }
 +}};
 +
 +
 +def template LoadCompleteAcc {{
 +    Fault %(class_name)s::completeAcc(uint8_t *data,
 +                                      %(CPU_exec_context)s *xc,
 +                                      Trace::InstRecord *traceData) const
 +    {
 +        Fault fault = No_Fault;
 +        %(mem_acc_type)s Mem = 0;
 +
 +        %(fp_enable_check)s;
 +        %(op_dest_decl)s;
 +
 +        memcpy(&Mem, data, sizeof(Mem));
 +
 +        if (fault == No_Fault) {
 +            %(memacc_code)s;
 +        }
 +
 +        if (fault == No_Fault) {
 +            %(op_wb)s;
 +        }
 +
 +        return fault;
 +    }
 +}};
 +
 +
  def template StoreMemAccExecute {{
-     Fault
+     Fault *
      %(class_name)s::MemAcc::execute(%(CPU_exec_context)s *xc,
                                     Trace::InstRecord *traceData) const
      {
      }
  }};
  
 +def template StoreInitiateAcc {{
 +    Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc,
 +                                      Trace::InstRecord *traceData) const
 +    {
 +        Addr EA;
 +        Fault fault = No_Fault;
 +        uint64_t write_result = 0;
 +        %(mem_acc_type)s Mem = 0;
 +
 +        %(fp_enable_check)s;
 +        %(op_src_decl)s;
 +        %(op_rd)s;
 +        %(ea_code)s;
 +
 +        if (fault == No_Fault) {
 +            %(memacc_code)s;
 +        }
 +
 +        if (fault == No_Fault) {
 +            fault = xc->write((uint%(mem_acc_size)d_t&)Mem, EA,
 +                              memAccessFlags, &write_result);
 +            if (traceData) { traceData->setData(Mem); }
 +        }
 +
 +        return fault;
 +    }
 +}};
 +
 +
 +def template StoreCompleteAcc {{
 +    Fault %(class_name)s::completeAcc(uint8_t *data,
 +                                      %(CPU_exec_context)s *xc,
 +                                      Trace::InstRecord *traceData) const
 +    {
 +        Fault fault = No_Fault;
 +        uint64_t write_result = 0;
 +
 +        %(fp_enable_check)s;
 +        %(op_dest_decl)s;
 +
 +        memcpy(&write_result, data, sizeof(write_result));
 +
 +        if (fault == No_Fault) {
 +            %(postacc_code)s;
 +        }
 +
 +        if (fault == No_Fault) {
 +            %(op_wb)s;
 +        }
 +
 +        return fault;
 +    }
 +}};
 +
  
  def template MiscMemAccExecute {{
-     Fault %(class_name)s::MemAcc::execute(%(CPU_exec_context)s *xc,
+     Fault * %(class_name)s::MemAcc::execute(%(CPU_exec_context)s *xc,
                                            Trace::InstRecord *traceData) const
      {
          Addr EA;