ptr[const value] is merged into RegExp
diff --git a/test/misc.cpp b/test/misc.cpp
index f05d5be..ee60a76 100644
--- a/test/misc.cpp
+++ b/test/misc.cpp
@@ -189,6 +189,26 @@
}
#endif
+CYBOZU_TEST_AUTO(const_addressing)
+{
+ struct Code : Xbyak::CodeGenerator {
+ Code()
+ {
+ mov(dword[0x7fffffff], edx);
+ }
+ } c;
+ const uint8_t tbl[] = {
+#ifdef XBYAK64
+ 0x89, 0x14, 0x25, 0xff, 0xff, 0xff, 0x7f
+#else
+ 0x89, 0x15, 0xff, 0xff, 0xff, 0x7f
+#endif
+ };
+ const size_t n = sizeof(tbl) / sizeof(tbl[0]);
+ CYBOZU_TEST_EQUAL(c.getSize(), n);
+ CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
+}
+
CYBOZU_TEST_AUTO(align)
{
struct Code : Xbyak::CodeGenerator {
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index d876008..ca17b47 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -1380,10 +1380,6 @@
}
e_.verify();
}
-#ifdef XBYAK64
- explicit XBYAK_CONSTEXPR Address(size_t disp)
- : Operand(0, MEM, 64), e_(disp), label_(0), mode_(inner::M_64bitDisp), immSize(0), disp8N(0), permitVsib(false), broadcast_(false), optimize_(true) { }
-#endif
RegExp getRegExp() const
{
return optimize_ ? e_.optimize() : e_;
@@ -1450,12 +1446,6 @@
{
return Address(bit_, broadcast_, e);
}
-#ifdef XBYAK64
- Address operator[](size_t disp) const
- {
- return Address(disp);
- }
-#endif
};
struct JmpLabel {