Lines Matching refs:distance

75 // The maximum (meaningful) distance (31) that can be used in an integer shift/rotate operation.
77 // The maximum (meaningful) distance (63) that can be used in a long shift/rotate operation.
4473 HInstruction* distance,
4475 : HBinaryOperation(result_type, value, distance, SideEffects::None(), dex_pc) {
4477 DCHECK_EQ(Primitive::kPrimInt, Primitive::PrimitiveKind(distance->GetType()));
4481 T Compute(T value, int32_t distance, int32_t max_shift_distance) const {
4482 return value << (distance & max_shift_distance);
4485 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4487 Compute(value->GetValue(), distance->GetValue(), kMaxIntShiftDistance), GetDexPc());
4489 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4491 Compute(value->GetValue(), distance->GetValue(), kMaxLongShiftDistance), GetDexPc());
4494 HLongConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4499 HFloatConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4504 HDoubleConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4519 HInstruction* distance,
4521 : HBinaryOperation(result_type, value, distance, SideEffects::None(), dex_pc) {
4523 DCHECK_EQ(Primitive::kPrimInt, Primitive::PrimitiveKind(distance->GetType()));
4527 T Compute(T value, int32_t distance, int32_t max_shift_distance) const {
4528 return value >> (distance & max_shift_distance);
4531 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4533 Compute(value->GetValue(), distance->GetValue(), kMaxIntShiftDistance), GetDexPc());
4535 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4537 Compute(value->GetValue(), distance->GetValue(), kMaxLongShiftDistance), GetDexPc());
4540 HLongConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4545 HFloatConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4550 HDoubleConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4565 HInstruction* distance,
4567 : HBinaryOperation(result_type, value, distance, SideEffects::None(), dex_pc) {
4569 DCHECK_EQ(Primitive::kPrimInt, Primitive::PrimitiveKind(distance->GetType()));
4573 T Compute(T value, int32_t distance, int32_t max_shift_distance) const {
4576 return static_cast<T>(ux >> (distance & max_shift_distance));
4579 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4581 Compute(value->GetValue(), distance->GetValue(), kMaxIntShiftDistance), GetDexPc());
4583 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4585 Compute(value->GetValue(), distance->GetValue(), kMaxLongShiftDistance), GetDexPc());
4588 HLongConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4593 HFloatConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4598 HDoubleConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4722 HRor(Primitive::Type result_type, HInstruction* value, HInstruction* distance)
4723 : HBinaryOperation(result_type, value, distance) {
4725 DCHECK_EQ(Primitive::kPrimInt, Primitive::PrimitiveKind(distance->GetType()));
4729 T Compute(T value, int32_t distance, int32_t max_shift_value) const {
4732 if ((distance & max_shift_value) == 0) {
4736 return static_cast<T>(ux >> (distance & max_shift_value)) |
4737 (value << (reg_bits - (distance & max_shift_value)));
4741 HConstant* Evaluate(HIntConstant* value, HIntConstant* distance) const OVERRIDE {
4743 Compute(value->GetValue(), distance->GetValue(), kMaxIntShiftDistance), GetDexPc());
4745 HConstant* Evaluate(HLongConstant* value, HIntConstant* distance) const OVERRIDE {
4747 Compute(value->GetValue(), distance->GetValue(), kMaxLongShiftDistance), GetDexPc());
4750 HLongConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4755 HFloatConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {
4760 HDoubleConstant* distance ATTRIBUTE_UNUSED) const OVERRIDE {