@@ -208,8 +208,7 @@ inline void Assembler::cmpldi(ConditionRegister crx, Register a, int ui16) { A
208208inline void Assembler::cmplw ( ConditionRegister crx, Register a, Register b) { Assembler::cmpl ( crx, 0 , a, b); }
209209inline void Assembler::cmpld ( ConditionRegister crx, Register a, Register b) { Assembler::cmpl ( crx, 1 , a, b); }
210210
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)); }
213212
214213// PPC 1, section 3.3.11, Fixed-Point Logical Instructions
215214inline 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
701700inline void Assembler::lwarx_unchecked (Register d, Register a, Register b, int eh1) { emit_int32 ( LWARX_OPCODE | rt (d) | ra0mem (a) | rb (b) | eh (eh1)); }
702701inline void Assembler::ldarx_unchecked (Register d, Register a, Register b, int eh1) { emit_int32 ( LDARX_OPCODE | rt (d) | ra0mem (a) | rb (b) | eh (eh1)); }
703702inline 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 ); }
710708inline void Assembler::stbcx_ (Register s, Register a, Register b) { emit_int32 ( STBCX_OPCODE | rs (s) | ra0mem (a) | rb (b) | rc (1 )); }
711709inline void Assembler::sthcx_ (Register s, Register a, Register b) { emit_int32 ( STHCX_OPCODE | rs (s) | ra0mem (a) | rb (b) | rc (1 )); }
712710inline 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
775773// inline void Assembler::mffgpr( FloatRegister d, Register b) { emit_int32( MFFGPR_OPCODE | frt(d) | rb(b) | rc(0)); }
776774// inline void Assembler::mftgpr( Register d, FloatRegister b) { emit_int32( MFTGPR_OPCODE | rt(d) | frb(b) | rc(0)); }
777775// 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)); };
784779inline void Assembler::popcntd (Register a, Register s) { emit_int32 ( POPCNTD_OPCODE | rta (a) | rs (s)); };
785780
786781inline 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
835830inline void Assembler::fctiw ( FloatRegister d, FloatRegister b) { emit_int32 ( FCTIW_OPCODE | frt (d) | frb (b) | rc (0 )); }
836831inline void Assembler::fctiwz (FloatRegister d, FloatRegister b) { emit_int32 ( FCTIWZ_OPCODE | frt (d) | frb (b) | rc (0 )); }
837832inline 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 )); }
840834
841835// PPC 1, section 4.6.7 Floating-Point Compare Instructions
842836inline void Assembler::fcmpu ( ConditionRegister crx, FloatRegister a, FloatRegister b) { emit_int32 ( FCMPU_OPCODE | bf (crx) | fra (a) | frb (b)); }
843837
844838// 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 )); }
849841
850842// Vector instructions for >= Power6.
851843inline 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
10571049inline void Assembler::vcmpgtub_ (VectorRegister d,VectorRegister a, VectorRegister b) { emit_int32 ( VCMPGTUB_OPCODE | vrt (d) | vra (a) | vrb (b) | vcmp_rc (1 )); }
10581050inline void Assembler::vcmpgtuh_ (VectorRegister d,VectorRegister a, VectorRegister b) { emit_int32 ( VCMPGTUH_OPCODE | vrt (d) | vra (a) | vrb (b) | vcmp_rc (1 )); }
10591051inline 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)); }
10621053inline void Assembler::vandc ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VANDC_OPCODE | vrt (d) | vra (a) | vrb (b)); }
10631054inline void Assembler::vnor ( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32 ( VNOR_OPCODE | vrt (d) | vra (a) | vrb (b)); }
10641055inline 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)
11661157inline void Assembler::lwarx_unchecked (Register d, Register b, int eh1) { emit_int32 ( LWARX_OPCODE | rt (d) | rb (b) | eh (eh1)); }
11671158inline void Assembler::ldarx_unchecked (Register d, Register b, int eh1) { emit_int32 ( LDARX_OPCODE | rt (d) | rb (b) | eh (eh1)); }
11681159inline 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 ); }
11741165inline void Assembler::stbcx_ (Register s, Register b) { emit_int32 ( STBCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
11751166inline void Assembler::sthcx_ (Register s, Register b) { emit_int32 ( STHCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
11761167inline void Assembler::stwcx_ (Register s, Register b) { emit_int32 ( STWCX_OPCODE | rs (s) | rb (b) | rc (1 )); }
0 commit comments