Lines Matching refs:destination
523 def EmitAdd(self, destination, source, param): argument
524 self.EmitOp3('add', destination, source, param)
526 def EmitSubs(self, destination, source, param): argument
527 self.EmitOp3('subs', destination, source, param)
529 def EmitSub(self, destination, source, param): argument
530 self.EmitOp3('sub', destination, source, param)
532 def EmitMul(self, destination, source, param): argument
533 self.EmitOp3('mul', destination, source, param)
538 def EmitVMovl(self, mov_type, destination, source): argument
540 destination = _AppendType(wide_type, destination)
543 self.EmitOp2('uxtl', destination, source)
545 self.EmitOp2('sxtl', destination, source)
569 def EmitVMax(self, max_type, destination, source_1, source_2): argument
572 _AppendType(max_type, destination),
577 _AppendType(max_type, destination),
581 def EmitVMin(self, min_type, destination, source_1, source_2): argument
584 _AppendType(min_type, destination),
589 _AppendType(min_type, destination),
617 def EmitVAdd(self, add_type, destination, source_1, source_2): argument
618 destination, source_1, source_2 = _MakeCompatibleDown(destination, source_1,
622 _AppendType(add_type, destination),
627 _AppendType(add_type, destination),
631 def EmitVAddw(self, add_type, destination, source_1, source_2): argument
633 destination = _AppendType(wide_type, destination)
637 self.EmitOp3('uaddw', destination, source_1, source_2)
639 self.EmitOp3('saddw', destination, source_1, source_2)
641 def EmitVSub(self, sub_type, destination, source_1, source_2): argument
642 destination, source_1, source_2 = _MakeCompatibleDown(destination, source_1,
646 _AppendType(sub_type, destination),
651 _AppendType(sub_type, destination),
655 def EmitVCvt(self, cvt_to, cvt_from, destination, source): argument
658 _AppendType('f32', destination), _AppendType('s32', source))
661 _AppendType('f32', destination), _AppendType('u32', source))
664 _AppendType('s32', destination), _AppendType('f32', source))
669 def EmitVDup(self, dup_type, destination, source): argument
673 _AppendType(dup_type, destination),
677 _AppendType(dup_type, destination),
680 def EmitVMov(self, mov_type, destination, source): argument
682 self.EmitOp2('movi', _AppendType(mov_type, destination), source)
686 _AppendType(mov_type, destination),
689 self.EmitOp2('mov', _AppendType(8, destination), _AppendType(8, source))
691 def EmitVQmovn(self, mov_type, destination, source): argument
693 if destination.register_bits * 2 == source.register_bits:
695 _AppendType(narrow_type, destination),
697 elif destination.register_bits == source.register_bits:
700 _Cast(destination.register_bits / 2,
701 destination)),
704 def EmitVQmovn2(self, mov_type, destination, source_1, source_2): argument
706 if (destination.register_bits != source_1.register_bits or
707 destination.register_bits != source_2.register_bits):
711 _Cast(destination.register_bits / 2, destination)),
714 _AppendType(narrow_type, destination),
717 def EmitVQmovun(self, mov_type, destination, source): argument
719 if destination.register_bits * 2 == source.register_bits:
721 _AppendType(narrow_type, destination),
723 elif destination.register_bits == source.register_bits:
726 _Cast(destination.register_bits / 2,
727 destination)),
730 def EmitVQmovun2(self, mov_type, destination, source_1, source_2): argument
732 if (destination.register_bits != source_1.register_bits or
733 destination.register_bits != source_2.register_bits):
737 _Cast(destination.register_bits / 2, destination)),
740 _AppendType(narrow_type, destination),
743 def EmitVMul(self, mul_type, destination, source_1, source_2): argument
744 destination, source_1, source_2 = _MakeCompatibleDown(destination, source_1,
748 _AppendType(mul_type, destination),
753 _AppendType(mul_type, destination),
757 def EmitVMulScalar(self, mul_type, destination, source_1, source_2): argument
759 _AppendType(mul_type, destination),
763 def EmitVMull(self, mul_type, destination, source_1, source_2): argument
767 _AppendType(wide_type, destination),
772 _AppendType(wide_type, destination),
776 def EmitVPadd(self, add_type, destination, source_1, source_2): argument
778 _AppendType(add_type, destination),
782 def EmitVPaddl(self, add_type, destination, source): argument
786 _AppendType(wide_type, destination),
790 _AppendType(wide_type, destination),
793 def EmitVPadal(self, add_type, destination, source): argument
797 _AppendType(wide_type, destination),
801 _AppendType(wide_type, destination),
807 def EmitVLoad(self, load_no, load_type, destination, source): argument
808 self.EmitVLoadA(load_no, load_type, [destination], source)
813 [_LoadStoreSize(destination) for destination in destinations]) / 8
824 destination = '{%s}' % _AppendType(load_type, destinations[0])
826 self.EmitOp3('ld%dr' % load_no, destination, source, increment)
828 self.EmitOp2('ld%dr' % load_no, destination, source)
845 min_bits = min([destination.register_bits for destination in destinations])
846 max_bits = max([destination.register_bits for destination in destinations])
904 def EmitVLoadE(self, load_type, count, destination, source, alignment=None): argument
905 self.EmitVLoadAE(load_type, count, [destination], source, alignment)
907 def EmitVLoadAllLanes(self, load_no, load_type, destination, source): argument
908 new_destination = destination.Copy()
913 def EmitVLoadOffset(self, load_no, load_type, destination, source, offset): argument
914 self.EmitVLoadOffsetA(load_no, load_type, [destination], source, offset)
928 def EmitVShl(self, shift_type, destination, source, shift): argument
930 _AppendType(shift_type, destination),
933 def EmitVStore(self, store_no, store_type, source, destination): argument
934 self.EmitVStoreA(store_no, store_type, [source], destination)
936 def EmitVStoreA(self, store_no, store_type, sources, destination): argument
937 if destination.dereference_increment:
939 self.EmitVStoreAPostIncrement(store_no, store_type, sources, destination,
942 self.EmitVStoreAPostIncrement(store_no, store_type, sources, destination,
945 def EmitVStoreAPostIncrement(self, store_no, store_type, sources, destination, argument
949 self.EmitOp3('st%d' % store_no, source_list, destination, increment)
951 self.EmitOp2('st%d' % store_no, source_list, destination)
957 destination, argument
975 self.DereferenceIncrement(destination, alignment))
980 self.DereferenceIncrement(destination, alignment))
985 self.DereferenceIncrement(destination, alignment))
990 self.DereferenceIncrement(destination, alignment))
996 self.DereferenceIncrement(destination, alignment))
1002 self.DereferenceIncrement(destination))
1008 self.DereferenceIncrement(destination))
1014 self.DereferenceIncrement(destination))
1020 def EmitVStoreE(self, store_type, count, source, destination, alignment=None): argument
1021 self.EmitVStoreAE(store_type, count, [source], destination, alignment)
1023 def EmitVStoreOffset(self, store_no, store_type, source, destination, offset): argument
1024 self.EmitVStoreOffsetA(store_no, store_type, [source], destination, offset)
1026 def EmitVStoreOffsetA(self, store_no, store_type, sources, destination, argument
1029 _RegisterList(store_type, sources), destination, offset)
1031 def EmitVStoreOffsetE(self, store_type, count, source, destination, offset): argument
1038 self.Dereference(destination, None), offset)
1042 self.Dereference(destination, None), offset)
1046 self.DereferenceIncrement(destination, None))
1049 self.Dereference(destination, None), offset)
1050 self.EmitSub(destination, destination, self.ImmediateConstant(8))
1053 self.Dereference(destination, None), offset)
1074 destinations = [_Cast(128, destination) for destination in destinations]
1094 def EmitVUzp1(self, uzp_type, destination, source_1, source_2): argument
1096 _AppendType(uzp_type, destination),
1100 def EmitVUzp2(self, uzp_type, destination, source_1, source_2): argument
1102 _AppendType(uzp_type, destination),
1111 def EmitVTrn1(self, trn_type, destination, source_1, source_2): argument
1113 _AppendType(trn_type, destination),
1117 def EmitVTrn2(self, trn_type, destination, source_1, source_2): argument
1119 _AppendType(trn_type, destination),