comparison src/cpu/x86/vm/assembler_x86.cpp @ 1920:2fe998383789

6997311: SIGFPE in new long division asm code Summary: use unsigned DIV instruction Reviewed-by: never
author kvn
date Sat, 06 Nov 2010 18:52:07 -0700
parents ae065c367d93
children 2d26b0046e0d f95d63e2154a
comparison
equal deleted inserted replaced
1919:d0895dfaf7cc 1920:2fe998383789
1273 int encode = prefix_and_encode(src->encoding()); 1273 int encode = prefix_and_encode(src->encoding());
1274 emit_byte(0xF7); 1274 emit_byte(0xF7);
1275 emit_byte(0xF8 | encode); 1275 emit_byte(0xF8 | encode);
1276 } 1276 }
1277 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
1278 void Assembler::imull(Register dst, Register src) { 1284 void Assembler::imull(Register dst, Register src) {
1279 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1285 int encode = prefix_and_encode(dst->encoding(), src->encoding());
1280 emit_byte(0x0F); 1286 emit_byte(0x0F);
1281 emit_byte(0xAF); 1287 emit_byte(0xAF);
1282 emit_byte(0xC0 | encode); 1288 emit_byte(0xC0 | encode);