aboutsummaryrefslogtreecommitdiffhomepage
path: root/gen/gen_code.cpp
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2023-11-23 10:35:54 +0900
committerMITSUNARI Shigeo <[email protected]>2023-11-23 10:35:54 +0900
commitc4d05037e254eee3aae808e1c4794ce1b22d45e4 (patch)
tree25e35471e6cf447346b3cf83029fbe0ad70473f3 /gen/gen_code.cpp
parent17f7d279c8bad265b7de16f8bc74c3934ceae5ce (diff)
downloadxbyak-c4d05037e254eee3aae808e1c4794ce1b22d45e4.tar.gz
xbyak-c4d05037e254eee3aae808e1c4794ce1b22d45e4.zip
add ccmpscc
Diffstat (limited to 'gen/gen_code.cpp')
-rw-r--r--gen/gen_code.cpp5
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);
}
}
{