comparison src/cpu/x86/vm/assembler_x86.cpp @ 12972:59e8ad757e19

8026844: Various Math functions needs intrinsification Reviewed-by: kvn, twisti
author rbackman
date Fri, 18 Oct 2013 10:41:56 +0200
parents f2512d89ad0c
children 096c224171c4 9e9af3aa4278
comparison
equal deleted inserted replaced
12971:3a04e444da6d 12972:59e8ad757e19
1403 emit_int8((unsigned char)(0xC0 | encode)); 1403 emit_int8((unsigned char)(0xC0 | encode));
1404 emit_int32(value); 1404 emit_int32(value);
1405 } 1405 }
1406 } 1406 }
1407 1407
1408 void Assembler::imull(Register dst, Address src) {
1409 InstructionMark im(this);
1410 prefix(src, dst);
1411 emit_int8(0x0F);
1412 emit_int8((unsigned char) 0xAF);
1413 emit_operand(dst, src);
1414 }
1415
1416
1408 void Assembler::incl(Address dst) { 1417 void Assembler::incl(Address dst) {
1409 // Don't use it directly. Use MacroAssembler::increment() instead. 1418 // Don't use it directly. Use MacroAssembler::increment() instead.
1410 InstructionMark im(this); 1419 InstructionMark im(this);
1411 prefix(dst); 1420 prefix(dst);
1412 emit_int8((unsigned char)0xFF); 1421 emit_int8((unsigned char)0xFF);
5022 emit_int8((unsigned char)(0xC0 | encode)); 5031 emit_int8((unsigned char)(0xC0 | encode));
5023 emit_int32(value); 5032 emit_int32(value);
5024 } 5033 }
5025 } 5034 }
5026 5035
5036 void Assembler::imulq(Register dst, Address src) {
5037 InstructionMark im(this);
5038 prefixq(src, dst);
5039 emit_int8(0x0F);
5040 emit_int8((unsigned char) 0xAF);
5041 emit_operand(dst, src);
5042 }
5043
5027 void Assembler::incl(Register dst) { 5044 void Assembler::incl(Register dst) {
5028 // Don't use it directly. Use MacroAssembler::incrementl() instead. 5045 // Don't use it directly. Use MacroAssembler::incrementl() instead.
5029 // Use two-byte form (one-byte from is a REX prefix in 64-bit mode) 5046 // Use two-byte form (one-byte from is a REX prefix in 64-bit mode)
5030 int encode = prefix_and_encode(dst->encoding()); 5047 int encode = prefix_and_encode(dst->encoding());
5031 emit_int8((unsigned char)0xFF); 5048 emit_int8((unsigned char)0xFF);