Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/assembler_x86.hpp @ 14726:92aa6797d639
Backed out merge changeset: b51e29501f30
Backed out merge revision to its first parent (8f483e200405)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Mar 2014 21:30:43 +0100 |
parents | b51e29501f30 |
children |
comparison
equal
deleted
inserted
replaced
14719:0bdd0d157040 | 14726:92aa6797d639 |
---|---|
588 int dst_enc = dst->encoding(); | 588 int dst_enc = dst->encoding(); |
589 int nds_enc = nds->is_valid() ? nds->encoding() : 0; | 589 int nds_enc = nds->is_valid() ? nds->encoding() : 0; |
590 vex_prefix(src, nds_enc, dst_enc, pre, VEX_OPCODE_0F, false, vector256); | 590 vex_prefix(src, nds_enc, dst_enc, pre, VEX_OPCODE_0F, false, vector256); |
591 } | 591 } |
592 | 592 |
593 void vex_prefix_0F38(Register dst, Register nds, Address src) { | |
594 bool vex_w = false; | |
595 bool vector256 = false; | |
596 vex_prefix(src, nds->encoding(), dst->encoding(), | |
597 VEX_SIMD_NONE, VEX_OPCODE_0F_38, vex_w, vector256); | |
598 } | |
599 | |
600 void vex_prefix_0F38_q(Register dst, Register nds, Address src) { | |
601 bool vex_w = true; | |
602 bool vector256 = false; | |
603 vex_prefix(src, nds->encoding(), dst->encoding(), | |
604 VEX_SIMD_NONE, VEX_OPCODE_0F_38, vex_w, vector256); | |
605 } | |
606 int vex_prefix_and_encode(int dst_enc, int nds_enc, int src_enc, | 593 int vex_prefix_and_encode(int dst_enc, int nds_enc, int src_enc, |
607 VexSimdPrefix pre, VexOpcode opc, | 594 VexSimdPrefix pre, VexOpcode opc, |
608 bool vex_w, bool vector256); | 595 bool vex_w, bool vector256); |
609 | 596 |
610 int vex_prefix_0F38_and_encode(Register dst, Register nds, Register src) { | |
611 bool vex_w = false; | |
612 bool vector256 = false; | |
613 return vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), | |
614 VEX_SIMD_NONE, VEX_OPCODE_0F_38, vex_w, vector256); | |
615 } | |
616 int vex_prefix_0F38_and_encode_q(Register dst, Register nds, Register src) { | |
617 bool vex_w = true; | |
618 bool vector256 = false; | |
619 return vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), | |
620 VEX_SIMD_NONE, VEX_OPCODE_0F_38, vex_w, vector256); | |
621 } | |
622 int vex_prefix_and_encode(XMMRegister dst, XMMRegister nds, XMMRegister src, | 597 int vex_prefix_and_encode(XMMRegister dst, XMMRegister nds, XMMRegister src, |
623 VexSimdPrefix pre, bool vector256 = false, | 598 VexSimdPrefix pre, bool vector256 = false, |
624 VexOpcode opc = VEX_OPCODE_0F) { | 599 VexOpcode opc = VEX_OPCODE_0F) { |
625 int src_enc = src->encoding(); | 600 int src_enc = src->encoding(); |
626 int dst_enc = dst->encoding(); | 601 int dst_enc = dst->encoding(); |
919 | 894 |
920 void andq(Address dst, int32_t imm32); | 895 void andq(Address dst, int32_t imm32); |
921 void andq(Register dst, int32_t imm32); | 896 void andq(Register dst, int32_t imm32); |
922 void andq(Register dst, Address src); | 897 void andq(Register dst, Address src); |
923 void andq(Register dst, Register src); | 898 void andq(Register dst, Register src); |
924 | |
925 // BMI instructions | |
926 void andnl(Register dst, Register src1, Register src2); | |
927 void andnl(Register dst, Register src1, Address src2); | |
928 void andnq(Register dst, Register src1, Register src2); | |
929 void andnq(Register dst, Register src1, Address src2); | |
930 | |
931 void blsil(Register dst, Register src); | |
932 void blsil(Register dst, Address src); | |
933 void blsiq(Register dst, Register src); | |
934 void blsiq(Register dst, Address src); | |
935 | |
936 void blsmskl(Register dst, Register src); | |
937 void blsmskl(Register dst, Address src); | |
938 void blsmskq(Register dst, Register src); | |
939 void blsmskq(Register dst, Address src); | |
940 | |
941 void blsrl(Register dst, Register src); | |
942 void blsrl(Register dst, Address src); | |
943 void blsrq(Register dst, Register src); | |
944 void blsrq(Register dst, Address src); | |
945 | 899 |
946 void bsfl(Register dst, Register src); | 900 void bsfl(Register dst, Register src); |
947 void bsrl(Register dst, Register src); | 901 void bsrl(Register dst, Register src); |
948 | 902 |
949 #ifdef _LP64 | 903 #ifdef _LP64 |
1618 void testl(Register dst, Address src); | 1572 void testl(Register dst, Address src); |
1619 | 1573 |
1620 void testq(Register dst, int32_t imm32); | 1574 void testq(Register dst, int32_t imm32); |
1621 void testq(Register dst, Register src); | 1575 void testq(Register dst, Register src); |
1622 | 1576 |
1623 // BMI - count trailing zeros | |
1624 void tzcntl(Register dst, Register src); | |
1625 void tzcntq(Register dst, Register src); | |
1626 | 1577 |
1627 // Unordered Compare Scalar Double-Precision Floating-Point Values and set EFLAGS | 1578 // Unordered Compare Scalar Double-Precision Floating-Point Values and set EFLAGS |
1628 void ucomisd(XMMRegister dst, Address src); | 1579 void ucomisd(XMMRegister dst, Address src); |
1629 void ucomisd(XMMRegister dst, XMMRegister src); | 1580 void ucomisd(XMMRegister dst, XMMRegister src); |
1630 | 1581 |