--- a/hotspot/src/share/vm/asm/register.hpp Tue Sep 02 10:26:48 2014 -0700
+++ b/hotspot/src/share/vm/asm/register.hpp Tue Sep 02 12:48:45 2014 -0700
@@ -275,4 +275,101 @@
);
}
+inline void assert_different_registers(
+ AbstractRegister a,
+ AbstractRegister b,
+ AbstractRegister c,
+ AbstractRegister d,
+ AbstractRegister e,
+ AbstractRegister f,
+ AbstractRegister g,
+ AbstractRegister h,
+ AbstractRegister i,
+ AbstractRegister j
+) {
+ assert(
+ a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j
+ && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j
+ && c != d && c != e && c != f && c != g && c != h && c != i && c != j
+ && d != e && d != f && d != g && d != h && d != i && d != j
+ && e != f && e != g && e != h && e != i && e != j
+ && f != g && f != h && f != i && f != j
+ && g != h && g != i && g != j
+ && h != i && h != j
+ && i != j,
+ err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
+ ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
+ ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
+ ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT "",
+ p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j))
+ );
+}
+
+inline void assert_different_registers(
+ AbstractRegister a,
+ AbstractRegister b,
+ AbstractRegister c,
+ AbstractRegister d,
+ AbstractRegister e,
+ AbstractRegister f,
+ AbstractRegister g,
+ AbstractRegister h,
+ AbstractRegister i,
+ AbstractRegister j,
+ AbstractRegister k
+) {
+ assert(
+ a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k
+ && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k
+ && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k
+ && d != e && d != f && d != g && d != h && d != i && d != j && d !=k
+ && e != f && e != g && e != h && e != i && e != j && e !=k
+ && f != g && f != h && f != i && f != j && f !=k
+ && g != h && g != i && g != j && g !=k
+ && h != i && h != j && h !=k
+ && i != j && i !=k
+ && j !=k,
+ err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
+ ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
+ ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
+ ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT "",
+ p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k))
+ );
+}
+
+inline void assert_different_registers(
+ AbstractRegister a,
+ AbstractRegister b,
+ AbstractRegister c,
+ AbstractRegister d,
+ AbstractRegister e,
+ AbstractRegister f,
+ AbstractRegister g,
+ AbstractRegister h,
+ AbstractRegister i,
+ AbstractRegister j,
+ AbstractRegister k,
+ AbstractRegister l
+) {
+ assert(
+ a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k && a !=l
+ && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k && b !=l
+ && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k && c !=l
+ && d != e && d != f && d != g && d != h && d != i && d != j && d !=k && d !=l
+ && e != f && e != g && e != h && e != i && e != j && e !=k && e !=l
+ && f != g && f != h && f != i && f != j && f !=k && f !=l
+ && g != h && g != i && g != j && g !=k && g !=l
+ && h != i && h != j && h !=k && h !=l
+ && i != j && i !=k && i !=l
+ && j !=k && j !=l
+ && k !=l,
+ err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT
+ ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT
+ ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT
+ ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT
+ ", l=" INTPTR_FORMAT "",
+ p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k), p2i(l))
+ );
+}
+
#endif // SHARE_VM_ASM_REGISTER_HPP