--- a
+++ b/trunk/MMix/MMix.Machine/Util.hpp
@@ -0,0 +1,23 @@
+#ifndef MMIX_MACHINE_UTIL_INCLUDED
+#define MMIX_MACHINE_UTIL_INCLUDED
+#include <MMix.Machine/Type.hpp>
+#include <Soul.Util/TextUtils.hpp>
+
+namespace MMix { namespace Machine {
+
+using Soul::Util::IntToString;
+
+String OctaToString(Octa o);
+String OctaToHexString(Octa o);
+String TetraToHexString(Tetra t, bool bytes);
+String WydeToHexString(Wyde w);
+String ByteToHexString(Byte b, bool pound);
+
+#pragma warning(disable: 4146)
+inline unsigned Align(unsigned a, unsigned alignment) { return (a + alignment - 1) & -alignment; }
+inline Octa Align(Octa addr, unsigned alignment) { return Octa(addr + alignment - 1) & Octa::SignExtend(static_cast<Tetra>(-alignment)); }
+#pragma warning(default: 4146)
+
+} } // namespace MMix::Machine
+
+#endif // MMIX_MACHINE_UTIL_INCLUDED