Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/assembler_x86.hpp @ 20438:166d744df0de
8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method
Summary: Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM.
Reviewed-by: roland
author | kvn |
---|---|
date | Tue, 02 Sep 2014 12:48:45 -0700 |
parents | b1bc1af04c6e |
children | 7848fc12602b e8260b6328fb |
comparison
equal
deleted
inserted
replaced
20437:bddcb33dadf4 | 20438:166d744df0de |
---|---|
886 void addq(Address dst, Register src); | 886 void addq(Address dst, Register src); |
887 void addq(Register dst, int32_t imm32); | 887 void addq(Register dst, int32_t imm32); |
888 void addq(Register dst, Address src); | 888 void addq(Register dst, Address src); |
889 void addq(Register dst, Register src); | 889 void addq(Register dst, Register src); |
890 | 890 |
891 #ifdef _LP64 | |
892 //Add Unsigned Integers with Carry Flag | |
893 void adcxq(Register dst, Register src); | |
894 | |
895 //Add Unsigned Integers with Overflow Flag | |
896 void adoxq(Register dst, Register src); | |
897 #endif | |
898 | |
891 void addr_nop_4(); | 899 void addr_nop_4(); |
892 void addr_nop_5(); | 900 void addr_nop_5(); |
893 void addr_nop_7(); | 901 void addr_nop_7(); |
894 void addr_nop_8(); | 902 void addr_nop_8(); |
895 | 903 |
1202 void hlt(); | 1210 void hlt(); |
1203 | 1211 |
1204 void idivl(Register src); | 1212 void idivl(Register src); |
1205 void divl(Register src); // Unsigned division | 1213 void divl(Register src); // Unsigned division |
1206 | 1214 |
1215 #ifdef _LP64 | |
1207 void idivq(Register src); | 1216 void idivq(Register src); |
1217 #endif | |
1208 | 1218 |
1209 void imull(Register dst, Register src); | 1219 void imull(Register dst, Register src); |
1210 void imull(Register dst, Register src, int value); | 1220 void imull(Register dst, Register src, int value); |
1211 void imull(Register dst, Address src); | 1221 void imull(Register dst, Address src); |
1212 | 1222 |
1223 #ifdef _LP64 | |
1213 void imulq(Register dst, Register src); | 1224 void imulq(Register dst, Register src); |
1214 void imulq(Register dst, Register src, int value); | 1225 void imulq(Register dst, Register src, int value); |
1215 #ifdef _LP64 | |
1216 void imulq(Register dst, Address src); | 1226 void imulq(Register dst, Address src); |
1217 #endif | 1227 #endif |
1218 | |
1219 | 1228 |
1220 // jcc is the generic conditional branch generator to run- | 1229 // jcc is the generic conditional branch generator to run- |
1221 // time routines, jcc is used for branches to labels. jcc | 1230 // time routines, jcc is used for branches to labels. jcc |
1222 // takes a branch opcode (cc) and a label (L) and generates | 1231 // takes a branch opcode (cc) and a label (L) and generates |
1223 // either a backward branch or a forward branch and links it | 1232 // either a backward branch or a forward branch and links it |
1406 #ifdef _LP64 | 1415 #ifdef _LP64 |
1407 void movzwq(Register dst, Address src); | 1416 void movzwq(Register dst, Address src); |
1408 void movzwq(Register dst, Register src); | 1417 void movzwq(Register dst, Register src); |
1409 #endif | 1418 #endif |
1410 | 1419 |
1420 // Unsigned multiply with RAX destination register | |
1411 void mull(Address src); | 1421 void mull(Address src); |
1412 void mull(Register src); | 1422 void mull(Register src); |
1423 | |
1424 #ifdef _LP64 | |
1425 void mulq(Address src); | |
1426 void mulq(Register src); | |
1427 void mulxq(Register dst1, Register dst2, Register src); | |
1428 #endif | |
1413 | 1429 |
1414 // Multiply Scalar Double-Precision Floating-Point Values | 1430 // Multiply Scalar Double-Precision Floating-Point Values |
1415 void mulsd(XMMRegister dst, Address src); | 1431 void mulsd(XMMRegister dst, Address src); |
1416 void mulsd(XMMRegister dst, XMMRegister src); | 1432 void mulsd(XMMRegister dst, XMMRegister src); |
1417 | 1433 |
1538 void rclq(Register dst, int imm8); | 1554 void rclq(Register dst, int imm8); |
1539 | 1555 |
1540 void rdtsc(); | 1556 void rdtsc(); |
1541 | 1557 |
1542 void ret(int imm16); | 1558 void ret(int imm16); |
1559 | |
1560 #ifdef _LP64 | |
1561 void rorq(Register dst, int imm8); | |
1562 void rorxq(Register dst, Register src, int imm8); | |
1563 #endif | |
1543 | 1564 |
1544 void sahf(); | 1565 void sahf(); |
1545 | 1566 |
1546 void sarl(Register dst, int imm8); | 1567 void sarl(Register dst, int imm8); |
1547 void sarl(Register dst); | 1568 void sarl(Register dst); |