1074def x86EncodeNativeInstruction :
1075 (pi unrestricted instruction : (family X86NativeInstruction) . Bytes) =
1076 (lambda unrestricted instruction : (family X86NativeInstruction) .
1077 (eliminate
1078 X86NativeInstruction
1079 (lambda unrestricted value : (family X86NativeInstruction) . Bytes)
1080 instruction
1081 (branch
1082 X86NativeMoveImmediate32
1083 destination
1084 immediate
1085 .
1086 (bytes-append
1087 (x86NativeMoveImmediate32Head destination)
1088 (x86NativeImmediate32Bytes immediate)))
1089 (branch
1090 X86NativeMoveImmediate64
1091 destination
1092 immediate
1093 .
1094 (bytes-append
1095 (x86NativeMoveImmediate64Head destination)
1096 (x86NativeImmediate64Bytes immediate)))
1097 (branch X86NativeClear32 destination . (x86NativeClear32Bytes destination))
1098 (branch
1099 X86NativeMoveRegister64
1100 source
1101 destination
1102 .
1103 (x86NativeRegisterInstructionBytes (byte 137) source destination))
1104 (branch
1105 X86NativeAddRegister64
1106 source
1107 destination
1108 .
1109 (x86NativeRegisterInstructionBytes (byte 1) source destination))
1110 (branch
1111 X86NativeSubtractRegister64
1112 source
1113 destination
1114 .
1115 (x86NativeRegisterInstructionBytes (byte 41) source destination))
1116 (branch
1117 X86NativeAndRegister64
1118 source
1119 destination
1120 .
1121 (x86NativeRegisterInstructionBytes (byte 33) source destination))
1122 (branch
1123 X86NativeOrRegister64
1124 source
1125 destination
1126 .
1127 (x86NativeRegisterInstructionBytes (byte 9) source destination))
1128 (branch
1129 X86NativeXorRegister64
1130 source
1131 destination
1132 .
1133 (x86NativeRegisterInstructionBytes (byte 49) source destination))
1134 (branch
1135 X86NativeCompareRegister64
1136 source
1137 destination
1138 .
1139 (x86NativeRegisterInstructionBytes (byte 57) source destination))
1140 (branch
1141 X86NativeTestRegister64
1142 source
1143 destination
1144 .
1145 (x86NativeRegisterInstructionBytes (byte 133) source destination))
1146 (branch
1147 X86NativeAddImmediate64
1148 destination
1149 immediate
1150 .
1151 (bytes-append
1152 (x86NativeAddImmediate64Head destination)
1153 (x86NativeImmediate32Bytes immediate)))
1154 (branch
1155 X86NativeAndImmediate64
1156 destination
1157 immediate
1158 .
1159 (bytes-append
1160 (x86NativeAndImmediate64Head destination)
1161 (x86NativeImmediate32Bytes immediate)))
1162 (branch
1163 X86NativeCompareImmediate64
1164 destination
1165 immediate
1166 .
1167 (bytes-append
1168 (x86NativeCompareImmediate64Head destination)
1169 (x86NativeImmediate32Bytes immediate)))
1170 (branch
1171 X86NativeMultiplyImmediate64
1172 destination
1173 immediate
1174 .
1175 (bytes-append
1176 (x86NativeMultiplyImmediate64Head destination)
1177 (x86NativeImmediate32Bytes immediate)))
1178 (branch X86NativeMultiplyRegister64Unsigned source .
1179 (x86NativeRegisterInstructionBytes (byte 247) (constructor X86NativeRegister64 X86NativeRSP) source))
1180 (branch X86NativeDivideRegister64Unsigned divisor .
1181 (x86NativeRegisterInstructionBytes (byte 247) (constructor X86NativeRegister64 X86NativeRSI) divisor))
1182 (branch
1183 X86NativeShiftLeftImmediate64
1184 destination
1185 immediate
1186 .
1187 (bytes-append
1188 (x86NativeShiftLeftImmediate64Head destination)
1189 (x86NativeImmediate8Bytes immediate)))
1190 (branch
1191 X86NativeShiftRightImmediate64
1192 destination
1193 immediate
1194 .
1195 (bytes-append
1196 (x86NativeShiftRightImmediate64Head destination)
1197 (x86NativeImmediate8Bytes immediate)))
1198 (branch
1199 X86NativeLoadMemory64
1200 destination
1201 base
1202 displacement
1203 .
1204 (x86NativeMemoryInstructionBytes (bytes 139) destination base displacement))
1205 (branch
1206 X86NativeLoadMemory8ZeroExtend64
1207 destination
1208 base
1209 displacement
1210 .
1211 (x86NativeMemoryInstructionBytes (bytes 15 182) destination base displacement))
1212 (branch
1213 X86NativeLoadMemory32ZeroExtend64
1214 destination
1215 base
1216 displacement
1217 .
1218 (x86NativeMemoryInstruction32Bytes (bytes 139) destination base displacement))
1219 (branch
1220 X86NativeStoreMemory32
1221 base
1222 displacement
1223 source
1224 .
1225 (x86NativeMemoryInstruction32Bytes (bytes 137) source base displacement))
1226 (branch
1227 X86NativeStoreMemory64
1228 base
1229 displacement
1230 source
1231 .
1232 (x86NativeMemoryInstructionBytes (bytes 137) source base displacement))
1233 (branch
1234 X86NativeStoreMemory8
1235 base
1236 displacement
1237 source
1238 .
1239 (x86NativeMemoryInstructionBytes (bytes 136) source base displacement))
1240 (branch X86NativeStoreFence . (bytes 15 174 248))
1241 (branch
1242 X86NativeLoadEffectiveAddressRIP
1243 destination
1244 displacement
1245 .
1246 (bytes-append
1247 (x86NativeLoadEffectiveAddressRIPHead destination)
1248 (x86NativeDisplacement32Bytes displacement)))
1249 (branch
1250 X86NativeJumpRelative32
1251 displacement
1252 .
1253 (bytes-append (bytes 233) (x86NativeDisplacement32Bytes displacement)))
1254 (branch
1255 X86NativeJumpConditionRelative32
1256 condition
1257 displacement
1258 .
1259 (bytes-append
1260 (bytes 15 (x86NativeConditionOpcode condition))
1261 (x86NativeDisplacement32Bytes displacement)))
1262 (branch X86NativeCallRegister64 target . (x86NativeCallRegister64Bytes target))
1263 (branch X86NativeReturn . (bytes 195))
1264 (branch X86NativeSystemCall . (bytes 15 5))
1265 (branch X86NativeMoveToXMM64 destination source . (x86NativeXMMGeneralBytes (byte 102) 1 (byte 110) destination source))
1266 (branch X86NativeMoveFromXMM64 destination source . (x86NativeXMMGeneralBytes (byte 102) 1 (byte 126) source destination))
1267 (branch X86NativeMoveFromXMM32 destination source . (x86NativeXMMGeneralBytes (byte 102) 0 (byte 126) source destination))
1268 (branch
1269 X86NativeScalarDouble
1270 operation
1271 destination
1272 source
1273 .
1274 (bytes-append
1275 (bytes 242 15 (x86NativeScalarDoubleOpcode operation))
1276 (x86NativeModRMRegister (x86NativeRegisterXMMLow3 destination) (x86NativeRegisterXMMLow3 source))))
1277 (branch
1278 X86NativeScalarSingleToDouble
1279 destination
1280 source
1281 .
1282 (bytes-append
1283 (bytes 243 15 90)
1284 (x86NativeModRMRegister (x86NativeRegisterXMMLow3 destination) (x86NativeRegisterXMMLow3 source))))
1285 (branch X86NativeScalarDoubleFromInteger64 destination source . (x86NativeXMMGeneralBytes (byte 242) 1 (byte 42) destination source))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.