/**
 * mips.h - all the aliases to MIPS ISA
 * @author Aleksandr Misevich
 * Copyright 2018 MIPT-MIPS
 */ 

#ifndef MIPS_H_
#define MIPS_H_

#include <infra/instrcache/instr_cache_memory.h>
#include "mips_instr.h"

struct MIPS
{
    using FuncInstr = MIPSInstr;
    using Register = MIPSRegister;
    using Memory = InstrMemory<MIPSInstr>;
    using RegisterUInt = uint32;
    using RegDstUInt = doubled_t<uint32>; // MIPS may produce output to 2x HI/LO register
};

#endif // MIPS_H_

/**
 * mips.h - all the aliases to MIPS ISA
 * @author Aleksandr Misevich
 * Copyright 2018 MIPT-MIPS
 */ 

#ifndef MIPS_H_
#define MIPS_H_

#include <infra/instrcache/instr_cache_memory.h>
#include "mips_instr.h"

struct MIPS
{
    using FuncInstr = MIPSInstr;
    using Register = MIPSRegister;
    using Memory = InstrMemory<MIPSInstr>;
    using RegisterUInt = uint32;
    using RegDstUInt = uint64; 
};

#endif // MIPS_H_

--- 
+++ 
@@ -16,7 +16,7 @@
     using Register = MIPSRegister;
     using Memory = InstrMemory<MIPSInstr>;
     using RegisterUInt = uint32;
-    using RegDstUInt = uint64; 
+    using RegDstUInt = doubled_t<uint32>; // MIPS may produce output to 2x HI/LO register
 };
 
 #endif // MIPS_H_
Use doubled_t for MIPS defines