diff options
-rw-r--r-- | gen/gen_code.cpp | 1 | ||||
-rw-r--r-- | test/misc.cpp | 3 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 1 |
3 files changed, 5 insertions, 0 deletions
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp index 9568053..e0fb14f 100644 --- a/gen/gen_code.cpp +++ b/gen/gen_code.cpp @@ -659,6 +659,7 @@ void put() { "cli", 0xFA }, { "cmc", 0xF5 }, + { "clui", 0xF3, 0x0F, 0x01, 0xEE }, { "cpuid", 0x0F, 0xA2 }, { "cwd", 0x66, 0x99 }, { "cwde", 0x98 }, diff --git a/test/misc.cpp b/test/misc.cpp index 2090dca..6bf8d3d 100644 --- a/test/misc.cpp +++ b/test/misc.cpp @@ -1949,6 +1949,7 @@ CYBOZU_TEST_AUTO(misc) movdiri(ptr[rax+r12], r9); movdiri(ptr[rax+r12*2+4], r9d); movdir64b(r10, ptr[r8]); + clui(); #endif } } c; @@ -1972,6 +1973,7 @@ CYBOZU_TEST_AUTO(misc) 0x4e, 0x0f, 0x38, 0xf9, 0x0c, 0x20, // movdiri 0x46, 0x0f, 0x38, 0xf9, 0x4c, 0x60, 0x04, // movdiri 0x66, 0x45, 0x0f, 0x38, 0xf8, 0x10, // movdir64b + 0xf3, 0x0f, 0x01, 0xee, // clui #endif }; const size_t n = sizeof(tbl) / sizeof(tbl[0]); @@ -2157,4 +2159,5 @@ CYBOZU_TEST_AUTO(prefetchiti) CYBOZU_TEST_EQUAL(c.getSize(), n); CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n); } + #endif diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h index 7c74e54..792ea96 100644 --- a/xbyak/xbyak_mnemonic.h +++ b/xbyak/xbyak_mnemonic.h @@ -65,6 +65,7 @@ void cldemote(const Address& addr) { opMIB(addr, eax, 0x0F, 0x1C); } void clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); } void clflushopt(const Address& addr) { db(0x66); opModM(addr, Reg32(7), 0x0F, 0xAE); } void cli() { db(0xFA); } +void clui() { db(0xF3); db(0x0F); db(0x01); db(0xEE); } void clwb(const Address& addr) { db(0x66); opMIB(addr, esi, 0x0F, 0xAE); } void clzero() { db(0x0F); db(0x01); db(0xFC); } void cmc() { db(0xF5); } |