Lines Matching refs:destination
287 def EmitAdd(self, destination, source, param): argument
288 self.EmitOp3('add', destination, source, param)
290 def EmitSubs(self, destination, source, param): argument
291 self.EmitOp3('subs', destination, source, param)
293 def EmitSub(self, destination, source, param): argument
294 self.EmitOp3('sub', destination, source, param)
296 def EmitMul(self, destination, source, param): argument
297 self.EmitOp3('mul', destination, source, param)
326 def EmitVAdd(self, add_type, destination, source_1, source_2): argument
327 destination, source_1, source_2 = _MakeCompatible(destination, source_1,
329 self.EmitOp3('vadd.%s' % add_type, destination, source_1, source_2)
331 def EmitVAddw(self, add_type, destination, source_1, source_2): argument
332 self.EmitOp3('vaddw.%s' % add_type, destination, source_1, source_2)
334 def EmitVSub(self, sub_type, destination, source_1, source_2): argument
335 destination, source_1, source_2 = _MakeCompatible(destination, source_1,
337 self.EmitOp3('vsub.%s' % sub_type, destination, source_1, source_2)
339 def EmitVCvt(self, cvt_to, cvt_from, destination, source): argument
340 self.EmitOp2('vcvt.%s.%s' % (cvt_to, cvt_from), destination, source)
342 def EmitVDup(self, dup_type, destination, source): argument
343 self.EmitOp2('vdup.%s' % dup_type, destination, source)
345 def EmitVMax(self, size, destination, source_1, source_2): argument
346 self.EmitOp3('vmax.%s' % size, destination, source_1, source_2)
348 def EmitVMin(self, size, destination, source_1, source_2): argument
349 self.EmitOp3('vmin.%s' % size, destination, source_1, source_2)
351 def EmitVMov(self, mov_type, destination, source): argument
352 self.EmitOp2('vmov.%s' % mov_type, destination, source)
354 def EmitVMovl(self, mov_type, destination, source): argument
357 self.EmitOp2('vmovl.%s' % mov_type, destination, source)
363 def EmitVQmovn(self, mov_type, destination, source): argument
364 if destination[0] == 'q':
365 destination = _Low(destination)
366 self.EmitOp2('vqmovn.%s' % mov_type, destination, source)
368 def EmitVQmovn2(self, mov_type, destination, source_1, source_2): argument
369 self.EmitVQmovn(mov_type, _Low(destination), source_1)
370 self.EmitVQmovn(mov_type, _High(destination), source_2)
372 def EmitVQmovun(self, mov_type, destination, source): argument
373 if destination[0] == 'q':
374 destination = _Low(destination)
375 self.EmitOp2('vqmovun.%s' % mov_type, destination, source)
377 def EmitVQmovun2(self, mov_type, destination, source_1, source_2): argument
378 self.EmitVQmovun(mov_type, _Low(destination), source_1)
379 self.EmitVQmovun(mov_type, _High(destination), source_2)
381 def EmitVMul(self, mul_type, destination, source_1, source_2): argument
382 destination, source_1, source_2 = _MakeCompatible(destination, source_1,
384 self.EmitOp3('vmul.%s' % mul_type, destination, source_1, source_2)
386 def EmitVMulScalar(self, mul_type, destination, source_1, source_2): argument
387 self.EmitOp3('vmul.%s' % mul_type, destination, source_1, source_2)
389 def EmitVMull(self, mul_type, destination, source_1, source_2): argument
390 self.EmitOp3('vmull.%s' % mul_type, destination, source_1, source_2)
392 def EmitVPadd(self, add_type, destination, source_1, source_2): argument
393 self.EmitOp3('vpadd.%s' % add_type, destination, source_1, source_2)
395 def EmitVPaddl(self, add_type, destination, source): argument
396 self.EmitOp2('vpaddl.%s' % add_type, destination, source)
398 def EmitVPadal(self, add_type, destination, source): argument
399 self.EmitOp2('vpadal.%s' % add_type, destination, source)
404 def EmitVLoad(self, load_no, load_type, destination, source): argument
405 self.EmitVLoadA(load_no, load_type, [destination], source)
445 destination = destinations[0]
448 self.Lane(32, destination, 0),
451 self.Lane(16, destination, 2),
454 self.Lane(8, destination, 6),
458 self.Lane(32, destination, 0),
461 self.Lane(16, destination, 2),
465 self.Lane(32, destination, 0),
468 self.Lane(8, destination, 4),
472 self.Lane(32, destination, 0),
476 self.Lane(16, destination, 0),
479 self.Lane(8, destination, 2),
483 self.Lane(16, destination, 0),
487 self.Lane(8, destination, 0),
493 def EmitVLoadE(self, load_type, count, destination, source, alignment=None): argument
494 self.EmitVLoadAE(load_type, count, [destination], source, alignment)
496 def EmitVLoadAllLanes(self, load_no, load_type, destination, source): argument
498 if destination[0] == 'q':
499 destinations.append(self.AllLanes(_Low(destination)))
500 destinations.append(self.AllLanes(_High(destination)))
502 destinations.append(self.AllLanes(destination))
505 def EmitVLoadOffset(self, load_no, load_type, destination, source, offset): argument
506 self.EmitVLoadOffsetA(load_no, load_type, [destination], source, offset)
525 def EmitVShl(self, shift_type, destination, source, shift): argument
526 self.EmitOp3('vshl.%s' % shift_type, destination, source, shift)
528 def EmitVStore(self, store_no, store_type, source, destination): argument
529 self.EmitVStoreA(store_no, store_type, [source], destination)
531 def EmitVStoreA(self, store_no, store_type, sources, destination): argument
533 '{%s}' % ', '.join(_ExpandQuads(sources)), destination)
539 destination, argument
550 self.DereferenceIncrement(destination, alignment))
555 self.DereferenceIncrement(destination, alignment))
560 self.DereferenceIncrement(destination, alignment))
565 self.DereferenceIncrement(destination, alignment))
573 self.DereferenceIncrement(destination))
576 self.DereferenceIncrement(destination))
579 self.DereferenceIncrement(destination))
583 self.DereferenceIncrement(destination))
586 self.DereferenceIncrement(destination))
590 self.DereferenceIncrement(destination))
593 self.DereferenceIncrement(destination))
597 self.DereferenceIncrement(destination))
601 self.DereferenceIncrement(destination))
604 self.DereferenceIncrement(destination))
608 self.DereferenceIncrement(destination))
612 self.DereferenceIncrement(destination))
617 def EmitVStoreE(self, store_type, count, source, destination, alignment=None): argument
618 self.EmitVStoreAE(store_type, count, [source], destination, alignment)
620 def EmitVStoreOffset(self, store_no, store_type, source, destination, offset): argument
621 self.EmitVStoreOffsetA(store_no, store_type, [source], destination, offset)
623 def EmitVStoreOffsetA(self, store_no, store_type, sources, destination, argument
626 '{%s}' % ', '.join(_ExpandQuads(sources)), destination, offset)
628 def EmitVStoreOffsetE(self, store_type, count, source, destination, offset): argument
649 self.Dereference(destination, None), offset)
652 self.Dereference(destination, None), offset)
655 self.DereferenceIncrement(destination, None))
658 self.Dereference(destination, None), offset)
659 self.EmitSub(destination, destination, self.ImmediateConstant(8))
662 self.Dereference(destination, None), offset)