@@ -208,8 +208,7 @@ inline void Assembler::cmpldi(ConditionRegister crx, Register a, int ui16) { A
208
208
inline void Assembler::cmplw ( ConditionRegister crx, Register a, Register b) { Assembler::cmpl ( crx, 0 , a, b); }
209
209
inline void Assembler::cmpld ( ConditionRegister crx, Register a, Register b) { Assembler::cmpl ( crx, 1 , a, b); }
210
210
211
- inline void Assembler::isel (Register d, Register a, Register b, int c) { guarantee (VM_Version::has_isel (), " opcode not supported on this hardware" );
212
- emit_int32 (ISEL_OPCODE | rt (d) | ra (a) | rb (b) | bc (c)); }
211
+ inline void Assembler::isel (Register d, Register a, Register b, int c) { emit_int32 (ISEL_OPCODE | rt (d) | ra (a) | rb (b) | bc (c)); }
213
212
214
213
// PPC 1, section 3.3.11, Fixed-Point Logical Instructions
215
214
inline void Assembler::andi_ ( Register a, Register s, int ui16) { emit_int32 (ANDI_OPCODE | rta (a) | rs (s) | uimm (ui16, 16 )); }
@@ -701,12 +700,11 @@ inline void Assembler::lharx_unchecked(Register d, Register a, Register b, int e
701
700
inline void Assembler::lwarx_unchecked (Register d, Register a, Register b, int eh1) { emit_int32 ( LWARX_OPCODE | rt (d) | ra0mem (a) | rb (b) | eh (eh1)); }
702
701
inline void Assembler::ldarx_unchecked (Register d, Register a, Register b, int eh1) { emit_int32 ( LDARX_OPCODE | rt (d) | ra0mem (a) | rb (b) | eh (eh1)); }
703
702
inline void Assembler::lqarx_unchecked (Register d, Register a, Register b, int eh1) { emit_int32 ( LQARX_OPCODE | rt (d) | ra0mem (a) | rb (b) | eh (eh1)); }
704
- inline bool Assembler::lxarx_hint_exclusive_access () { return VM_Version::has_lxarxeh (); }
705
- inline void Assembler::lbarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lbarx_unchecked (d, a, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
706
- inline void Assembler::lharx ( Register d, Register a, Register b, bool hint_exclusive_access) { lharx_unchecked (d, a, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
707
- inline void Assembler::lwarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lwarx_unchecked (d, a, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
708
- inline void Assembler::ldarx ( Register d, Register a, Register b, bool hint_exclusive_access) { ldarx_unchecked (d, a, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
709
- inline void Assembler::lqarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lqarx_unchecked (d, a, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
703
+ inline void Assembler::lbarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lbarx_unchecked (d, a, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
704
+ inline void Assembler::lharx ( Register d, Register a, Register b, bool hint_exclusive_access) { lharx_unchecked (d, a, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
705
+ inline void Assembler::lwarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lwarx_unchecked (d, a, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
706
+ inline void Assembler::ldarx ( Register d, Register a, Register b, bool hint_exclusive_access) { ldarx_unchecked (d, a, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
707
+ inline void Assembler::lqarx ( Register d, Register a, Register b, bool hint_exclusive_access) { lqarx_unchecked (d, a, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
710
708
inline void Assembler::stbcx_ (Register s, Register a, Register b) { emit_int32 ( STBCX_OPCODE | rs (s) | ra0mem (a) | rb (b) | rc (1 )); }
711
709
inline void Assembler::sthcx_ (Register s, Register a, Register b) { emit_int32 ( STHCX_OPCODE | rs (s) | ra0mem (a) | rb (b) | rc (1 )); }
712
710
inline void Assembler::stwcx_ (Register s, Register a, Register b) { emit_int32 ( STWCX_OPCODE | rs (s) | ra0mem (a) | rb (b) | rc (1 )); }
@@ -775,12 +773,9 @@ inline void Assembler::frim( FloatRegister d, FloatRegister b) { emit_int32( FRI
775
773
// inline void Assembler::mffgpr( FloatRegister d, Register b) { emit_int32( MFFGPR_OPCODE | frt(d) | rb(b) | rc(0)); }
776
774
// inline void Assembler::mftgpr( Register d, FloatRegister b) { emit_int32( MFTGPR_OPCODE | rt(d) | frb(b) | rc(0)); }
777
775
// add cmpb and popcntb to detect ppc power version.
778
- inline void Assembler::cmpb ( Register a, Register s, Register b) { guarantee (VM_Version::has_cmpb (), " opcode not supported on this hardware" );
779
- emit_int32 ( CMPB_OPCODE | rta (a) | rs (s) | rb (b) | rc (0 )); }
780
- inline void Assembler::popcntb (Register a, Register s) { guarantee (VM_Version::has_popcntb (), " opcode not supported on this hardware" );
781
- emit_int32 ( POPCNTB_OPCODE | rta (a) | rs (s)); };
782
- inline void Assembler::popcntw (Register a, Register s) { guarantee (VM_Version::has_popcntw (), " opcode not supported on this hardware" );
783
- emit_int32 ( POPCNTW_OPCODE | rta (a) | rs (s)); };
776
+ inline void Assembler::cmpb ( Register a, Register s, Register b) { emit_int32 ( CMPB_OPCODE | rta (a) | rs (s) | rb (b) | rc (0 )); }
777
+ inline void Assembler::popcntb (Register a, Register s) { emit_int32 ( POPCNTB_OPCODE | rta (a) | rs (s)); };
778
+ inline void Assembler::popcntw (Register a, Register s) { emit_int32 ( POPCNTW_OPCODE | rta (a) | rs (s)); };
784
779
inline void Assembler::popcntd (Register a, Register s) { emit_int32 ( POPCNTD_OPCODE | rta (a) | rs (s)); };
785
780
786
781
inline void Assembler::fneg ( FloatRegister d, FloatRegister b) { emit_int32 ( FNEG_OPCODE | frt (d) | frb (b) | rc (0 )); }
@@ -835,17 +830,14 @@ inline void Assembler::fctidz(FloatRegister d, FloatRegister b) { emit_int32( FC
835
830
inline void Assembler::fctiw ( FloatRegister d, FloatRegister b) { emit_int32 ( FCTIW_OPCODE | frt (d) | frb (b) | rc (0 )); }
836
831
inline void Assembler::fctiwz (FloatRegister d, FloatRegister b) { emit_int32 ( FCTIWZ_OPCODE | frt (d) | frb (b) | rc (0 )); }
837
832
inline void Assembler::fcfid ( FloatRegister d, FloatRegister b) { emit_int32 ( FCFID_OPCODE | frt (d) | frb (b) | rc (0 )); }
838
- inline void Assembler::fcfids (FloatRegister d, FloatRegister b) { guarantee (VM_Version::has_fcfids (), " opcode not supported on this hardware" );
839
- emit_int32 ( FCFIDS_OPCODE | frt (d) | frb (b) | rc (0 )); }
833
+ inline void Assembler::fcfids (FloatRegister d, FloatRegister b) { emit_int32 ( FCFIDS_OPCODE | frt (d) | frb (b) | rc (0 )); }
840
834
841
835
// PPC 1, section 4.6.7 Floating-Point Compare Instructions
842
836
inline void Assembler::fcmpu ( ConditionRegister crx, FloatRegister a, FloatRegister b) { emit_int32 ( FCMPU_OPCODE | bf (crx) | fra (a) | frb (b)); }
843
837
844
838
// PPC 1, section 5.2.1 Floating-Point Arithmetic Instructions
845
- inline void Assembler::fsqrt ( FloatRegister d, FloatRegister b) { guarantee (VM_Version::has_fsqrt (), " opcode not supported on this hardware" );
846
- emit_int32 ( FSQRT_OPCODE | frt (d) | frb (b) | rc (0 )); }
847
- inline void Assembler::fsqrts (FloatRegister d, FloatRegister b) { guarantee (VM_Version::has_fsqrts (), " opcode not supported on this hardware" );
848
- emit_int32 ( FSQRTS_OPCODE | frt (d) | frb (b) | rc (0 )); }
839
+ inline void Assembler::fsqrt ( FloatRegister d, FloatRegister b) { emit_int32 ( FSQRT_OPCODE | frt (d) | frb (b) | rc (0 )); }
840
+ inline void Assembler::fsqrts (FloatRegister d, FloatRegister b) { emit_int32 ( FSQRTS_OPCODE | frt (d) | frb (b) | rc (0 )); }
849
841
850
842
// Vector instructions for >= Power6.
851
843
inline void Assembler::lvebx ( VectorRegister d, Register s1, Register s2) { emit_int32 ( LVEBX_OPCODE | vrt (d) | ra0mem (s1) | rb (s2)); }
@@ -1057,8 +1049,7 @@ inline void Assembler::vcmpgtsw_(VectorRegister d,VectorRegister a, VectorRegist
1057
1049
inline void Assembler::vcmpgtub_ (VectorRegister d,VectorRegister a, VectorRegister b) { emit_int32 ( VCMPGTUB_OPCODE | vrt (d) | vra (a) | vrb (b) | vcmp_rc (1 )); }
1058
1050
inline void Assembler::vcmpgtuh_ (VectorRegister d,VectorRegister a, VectorRegister b) { emit_int32 ( VCMPGTUH_OPCODE | vrt (d) | vra (a) | vrb (b) | vcmp_rc (1 )); }
1059
1051
inline void Assembler::vcmpgtuw_ (VectorRegister d,VectorRegister a, VectorRegister b) { emit_int32 ( VCMPGTUW_OPCODE | vrt (d) | vra (a) | vrb (b) | vcmp_rc (1 )); }
1060
- inline void Assembler::vand ( VectorRegister d, VectorRegister a, VectorRegister b) { guarantee (VM_Version::has_vand (), " opcode not supported on this hardware" );
1061
- emit_int32 ( VAND_OPCODE | vrt (d) | vra (a) | vrb (b)); }
1052
+ inline void Assembler::vand ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VAND_OPCODE | vrt (d) | vra (a) | vrb (b)); }
1062
1053
inline void Assembler::vandc ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VANDC_OPCODE | vrt (d) | vra (a) | vrb (b)); }
1063
1054
inline void Assembler::vnor ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VNOR_OPCODE | vrt (d) | vra (a) | vrb (b)); }
1064
1055
inline void Assembler::vor ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VOR_OPCODE | vrt (d) | vra (a) | vrb (b)); }
@@ -1166,11 +1157,11 @@ inline void Assembler::lharx_unchecked(Register d, Register b, int eh1)
1166
1157
inline void Assembler::lwarx_unchecked (Register d, Register b, int eh1) { emit_int32 ( LWARX_OPCODE | rt (d) | rb (b) | eh (eh1)); }
1167
1158
inline void Assembler::ldarx_unchecked (Register d, Register b, int eh1) { emit_int32 ( LDARX_OPCODE | rt (d) | rb (b) | eh (eh1)); }
1168
1159
inline void Assembler::lqarx_unchecked (Register d, Register b, int eh1) { emit_int32 ( LQARX_OPCODE | rt (d) | rb (b) | eh (eh1)); }
1169
- inline void Assembler::lbarx ( Register d, Register b, bool hint_exclusive_access){ lbarx_unchecked (d, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1170
- inline void Assembler::lharx ( Register d, Register b, bool hint_exclusive_access){ lharx_unchecked (d, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1171
- inline void Assembler::lwarx ( Register d, Register b, bool hint_exclusive_access){ lwarx_unchecked (d, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1172
- inline void Assembler::ldarx ( Register d, Register b, bool hint_exclusive_access){ ldarx_unchecked (d, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1173
- inline void Assembler::lqarx ( Register d, Register b, bool hint_exclusive_access){ lqarx_unchecked (d, b, (hint_exclusive_access && lxarx_hint_exclusive_access () && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1160
+ inline void Assembler::lbarx ( Register d, Register b, bool hint_exclusive_access){ lbarx_unchecked (d, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1161
+ inline void Assembler::lharx ( Register d, Register b, bool hint_exclusive_access){ lharx_unchecked (d, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1162
+ inline void Assembler::lwarx ( Register d, Register b, bool hint_exclusive_access){ lwarx_unchecked (d, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1163
+ inline void Assembler::ldarx ( Register d, Register b, bool hint_exclusive_access){ ldarx_unchecked (d, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1164
+ inline void Assembler::lqarx ( Register d, Register b, bool hint_exclusive_access){ lqarx_unchecked (d, b, (hint_exclusive_access && UseExtendedLoadAndReserveInstructionsPPC64) ? 1 : 0 ); }
1174
1165
inline void Assembler::stbcx_ (Register s, Register b) { emit_int32 ( STBCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
1175
1166
inline void Assembler::sthcx_ (Register s, Register b) { emit_int32 ( STHCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
1176
1167
inline void Assembler::stwcx_ (Register s, Register b) { emit_int32 ( STWCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
0 commit comments