1258 emit_byte(0x5E); 1259 emit_byte(0xC0 | encode); 1260 } 1261 1262 void Assembler::emms() { 1263 NOT_LP64(assert(VM_Version::supports_mmx(), "")); 1264 emit_byte(0x0F); 1265 emit_byte(0x77); 1266 } 1267 1268 void Assembler::hlt() { 1269 emit_byte(0xF4); 1270 } 1271 1272 void Assembler::idivl(Register src) { 1273 int encode = prefix_and_encode(src->encoding()); 1274 emit_byte(0xF7); 1275 emit_byte(0xF8 | encode); 1276 } 1277 1278 void Assembler::imull(Register dst, Register src) { 1279 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1280 emit_byte(0x0F); 1281 emit_byte(0xAF); 1282 emit_byte(0xC0 | encode); 1283 } 1284 1285 1286 void Assembler::imull(Register dst, Register src, int value) { 1287 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1288 if (is8bit(value)) { 1289 emit_byte(0x6B); 1290 emit_byte(0xC0 | encode); 1291 emit_byte(value & 0xFF); 1292 } else { 1293 emit_byte(0x69); 1294 emit_byte(0xC0 | encode); 1295 emit_long(value); 1296 } 1297 } | 1258 emit_byte(0x5E); 1259 emit_byte(0xC0 | encode); 1260 } 1261 1262 void Assembler::emms() { 1263 NOT_LP64(assert(VM_Version::supports_mmx(), "")); 1264 emit_byte(0x0F); 1265 emit_byte(0x77); 1266 } 1267 1268 void Assembler::hlt() { 1269 emit_byte(0xF4); 1270 } 1271 1272 void Assembler::idivl(Register src) { 1273 int encode = prefix_and_encode(src->encoding()); 1274 emit_byte(0xF7); 1275 emit_byte(0xF8 | encode); 1276 } 1277 1278 void Assembler::divl(Register src) { // Unsigned 1279 int encode = prefix_and_encode(src->encoding()); 1280 emit_byte(0xF7); 1281 emit_byte(0xF0 | encode); 1282 } 1283 1284 void Assembler::imull(Register dst, Register src) { 1285 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1286 emit_byte(0x0F); 1287 emit_byte(0xAF); 1288 emit_byte(0xC0 | encode); 1289 } 1290 1291 1292 void Assembler::imull(Register dst, Register src, int value) { 1293 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1294 if (is8bit(value)) { 1295 emit_byte(0x6B); 1296 emit_byte(0xC0 | encode); 1297 emit_byte(value & 0xFF); 1298 } else { 1299 emit_byte(0x69); 1300 emit_byte(0xC0 | encode); 1301 emit_long(value); 1302 } 1303 } |