diff options
author | MITSUNARI Shigeo <[email protected]> | 2023-11-23 10:35:54 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2023-11-23 10:35:54 +0900 |
commit | c4d05037e254eee3aae808e1c4794ce1b22d45e4 (patch) | |
tree | 25e35471e6cf447346b3cf83029fbe0ad70473f3 /gen/gen_code.cpp | |
parent | 17f7d279c8bad265b7de16f8bc74c3934ceae5ce (diff) | |
download | xbyak-c4d05037e254eee3aae808e1c4794ce1b22d45e4.tar.gz xbyak-c4d05037e254eee3aae808e1c4794ce1b22d45e4.zip |
add ccmpscc
Diffstat (limited to 'gen/gen_code.cpp')
-rw-r--r-- | gen/gen_code.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp index 8cce9a5..6905888 100644 --- a/gen/gen_code.cpp +++ b/gen/gen_code.cpp @@ -631,6 +631,11 @@ void put() printf("void j%s(const char *label, LabelType type = T_AUTO) { j%s(std::string(label), type); }%s\n", p->name, p->name, msg); printf("void j%s(const void *addr) { opJmpAbs(addr, T_NEAR, 0x%02X, 0x%02X, 0x%02X); }%s\n", p->name, p->ext | 0x70, p->ext | 0x80, 0x0F, msg); printf("void set%s(const Operand& op) { if (opROO(Reg(), op, Reg(), T_VEX|T_ZU|T_F2, 0x40 | %d)) return; opRext(op, 8, 0, T_0F, 0x90 | %d); }%s\n", p->name, p->ext, p->ext, msg); + + // ccmpscc + // true if SCC = 0b1010, false if SCC = 0b1011 (see APX Architecture Specification p.266) + const char *s = p->ext == 10 ? "t" : p->ext == 11 ? "f" : p->name; + printf("void ccmp%s(const Operand& op1, const Operand& op2, int dfv) { opCcmp(op1, op2, dfv, %d); }\n", s, p->ext); } } { |