src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6997311 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/assembler_x86.cpp

Print this page




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 }


src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File