# Authors: Gabe Black
 
 microcode = '''
-# COMISS
-# COMISD
-# UCOMISS
+def macroop UCOMISS_XMM_XMM {
+    mcmpf2rf xmml, xmmlm, size=4
+};
+
+def macroop UCOMISS_XMM_M {
+    ldfp ufp1, seg, sib, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=4
+};
+
+def macroop UCOMISS_XMM_P {
+    rdip t7
+    ldfp ufp1, seg, riprel, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=4
+};
 
 def macroop UCOMISD_XMM_XMM {
-    compfp xmml, xmmlm
+    mcmpf2rf xmml, xmmlm, size=8
 };
 
 def macroop UCOMISD_XMM_M {
     ldfp ufp1, seg, sib, disp, dataSize=8
-    compfp xmml, ufp1
+    mcmpf2rf xmml, ufp1, size=8
 };
 
 def macroop UCOMISD_XMM_P {
     rdip t7
     ldfp ufp1, seg, riprel, disp, dataSize=8
-    compfp xmml, ufp1
+    mcmpf2rf xmml, ufp1, size=8
+};
+
+def macroop COMISS_XMM_XMM {
+    mcmpf2rf xmml, xmmlm, size=4
+};
+
+def macroop COMISS_XMM_M {
+    ldfp ufp1, seg, sib, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=4
+};
+
+def macroop COMISS_XMM_P {
+    rdip t7
+    ldfp ufp1, seg, riprel, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=4
+};
+
+def macroop COMISD_XMM_XMM {
+    mcmpf2rf xmml, xmmlm, size=8
+};
+
+def macroop COMISD_XMM_M {
+    ldfp ufp1, seg, sib, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=8
+};
+
+def macroop COMISD_XMM_P {
+    rdip t7
+    ldfp ufp1, seg, riprel, disp, dataSize=8
+    mcmpf2rf xmml, ufp1, size=8
 };
 '''