Lines Matching refs:machine

17 #include "src/compiler/machine-operator.h"
64 MachineOperatorBuilder* machine() { return &machine_; }
100 return AddNode(machine()->StackSlot(rep, alignment));
136 const Operator* op = machine()->Load(type);
144 const Operator* op = machine()->LoadImmutable(type);
180 return AddNode(machine()->Store(StoreRepresentation(rep, write_barrier)),
217 if (machine()->UnalignedLoadSupported(rep)) {
218 return AddNode(machine()->Load(type), base, index);
220 return AddNode(machine()->UnalignedLoad(type), base, index);
230 if (machine()->UnalignedStoreSupported(rep)) {
231 return AddNode(machine()->Store(StoreRepresentation(
236 machine()->UnalignedStore(UnalignedStoreRepresentation(rep)), base,
245 return AddNode(machine()->Word32AtomicLoad(rep), base, index);
249 if (machine()->Is64()) {
251 // Int64(), which is fine because the machine instruction only cares
253 return AddNode(machine()->Word64AtomicLoad(rep), base, index);
255 return AddNode(machine()->Word32AtomicPairLoad(rep.order()), base, index);
269 return AddNode(machine()->Word32AtomicStore(params), base, index, value);
274 if (machine()->Is64()) {
276 return AddNode(machine()->Word64AtomicStore(params), base, index, value);
281 return AddNode(machine()->Word32AtomicPairStore(params.order()), base,
289 return AddNode(machine()->Word32Atomic##name(type), base, index, value); \
293 if (machine()->Is64()) { \
296 /* implemented for Int64(), which is fine because the machine */ \
298 return AddNode(machine()->Word64Atomic##name(MachineType::Uint64()), \
301 return AddNode(machine()->Word32AtomicPair##name(), base, index, \
317 return AddNode(machine()->Word32AtomicCompareExchange(type), base, index,
324 if (machine()->Is64()) {
328 // implemented for Int64(), which is fine because the machine instruction
331 machine()->Word64AtomicCompareExchange(MachineType::Uint64()), base,
334 return AddNode(machine()->Word32AtomicPairCompareExchange(), base, index,
341 return AddNode(machine()->WordAnd(), a, b);
343 Node* WordOr(Node* a, Node* b) { return AddNode(machine()->WordOr(), a, b); }
345 return AddNode(machine()->WordXor(), a, b);
348 return AddNode(machine()->WordShl(), a, b);
351 return AddNode(machine()->WordShr(), a, b);
354 return AddNode(machine()->WordSar(), a, b);
357 return AddNode(machine()->WordSarShiftOutZeros(), a, b);
360 return AddNode(machine()->WordRor(), a, b);
363 return AddNode(machine()->WordEqual(), a, b);
369 if (machine()->Is32()) {
377 return AddNode(machine()->Word32And(), a, b);
380 return AddNode(machine()->Word32Or(), a, b);
383 return AddNode(machine()->Word32Xor(), a, b);
386 return AddNode(machine()->Word32Shl(), a, b);
389 return AddNode(machine()->Word32Shr(), a, b);
392 return AddNode(machine()->Word32Sar(), a, b);
395 return AddNode(machine()->Word32SarShiftOutZeros(), a, b);
398 return AddNode(machine()->Word32Ror(), a, b);
400 Node* Word32Clz(Node* a) { return AddNode(machine()->Word32Clz(), a); }
402 return AddNode(machine()->Word32Equal(), a, b);
411 return AddNode(machine()->Word64And(), a, b);
414 return AddNode(machine()->Word64Or(), a, b);
417 return AddNode(machine()->Word64Xor(), a, b);
420 return AddNode(machine()->Word64Shl(), a, b);
423 return AddNode(machine()->Word64Shr(), a, b);
426 return AddNode(machine()->Word64Sar(), a, b);
429 return AddNode(machine()->Word64Ror(), a, b);
431 Node* Word64Clz(Node* a) { return AddNode(machine()->Word64Clz(), a); }
433 return AddNode(machine()->Word64Equal(), a, b);
441 return AddNode(machine()->Int32Add(), a, b);
444 return AddNode(machine()->Int32AddWithOverflow(), a, b);
447 return AddNode(machine()->Int32Sub(), a, b);
450 return AddNode(machine()->Int32SubWithOverflow(), a, b);
453 return AddNode(machine()->Int32Mul(), a, b);
456 return AddNode(machine()->Int32MulHigh(), a, b);
459 return AddNode(machine()->Int32MulWithOverflow(), a, b);
462 return AddNode(machine()->Int32Div(), a, b);
465 return AddNode(machine()->Int32Mod(), a, b);
468 return AddNode(machine()->Int32LessThan(), a, b);
471 return AddNode(machine()->Int32LessThanOrEqual(), a, b);
474 return AddNode(machine()->Uint32Div(), a, b);
477 return AddNode(machine()->Uint32LessThan(), a, b);
480 return AddNode(machine()->Uint32LessThanOrEqual(), a, b);
483 return AddNode(machine()->Uint32Mod(), a, b);
486 return AddNode(machine()->Uint32MulHigh(), a, b);
499 return AddNode(machine()->Int64Add(), a, b);
502 return AddNode(machine()->Int64AddWithOverflow(), a, b);
505 return AddNode(machine()->Int64Sub(), a, b);
508 return AddNode(machine()->Int64SubWithOverflow(), a, b);
511 return AddNode(machine()->Int64Mul(), a, b);
514 return AddNode(machine()->Int64Div(), a, b);
517 return AddNode(machine()->Int64Mod(), a, b);
521 return AddNode(machine()->Int64LessThan(), a, b);
524 return AddNode(machine()->Int64LessThanOrEqual(), a, b);
527 return AddNode(machine()->Uint64LessThan(), a, b);
530 return AddNode(machine()->Uint64LessThanOrEqual(), a, b);
541 return AddNode(machine()->Uint64Div(), a, b);
544 return AddNode(machine()->Uint64Mod(), a, b);
547 return AddNode(machine()->Int32PairAdd(), a_low, a_high, b_low, b_high);
550 return AddNode(machine()->Int32PairSub(), a_low, a_high, b_low, b_high);
553 return AddNode(machine()->Int32PairMul(), a_low, a_high, b_low, b_high);
556 return AddNode(machine()->Word32PairShl(), low_word, high_word, shift);
559 return AddNode(machine()->Word32PairShr(), low_word, high_word, shift);
562 return AddNode(machine()->Word32PairSar(), low_word, high_word, shift);
565 return AddNode(machine()->Word32Popcnt().op(), a);
568 return AddNode(machine()->Word64Popcnt().op(), a);
570 Node* Word32Ctz(Node* a) { return AddNode(machine()->Word32Ctz().op(), a); }
571 Node* Word64Ctz(Node* a) { return AddNode(machine()->Word64Ctz().op(), a); }
574 return AddNode(machine()->Word32Select().op(), condition, b, c);
578 return AddNode(machine()->Word64Select().op(), condition, b, c);
583 machine()->StackPointerGreaterThan(StackCheckKind::kCodeStubAssembler),
622 return AddNode(machine()->Int32AbsWithOverflow().op(), a);
626 return AddNode(machine()->Int64AbsWithOverflow().op(), a);
635 return AddNode(machine()->Float32Add(), a, b);
638 return AddNode(machine()->Float32Sub(), a, b);
641 return AddNode(machine()->Float32Mul(), a, b);
644 return AddNode(machine()->Float32Div(), a, b);
646 Node* Float32Abs(Node* a) { return AddNode(machine()->Float32Abs(), a); }
647 Node* Float32Neg(Node* a) { return AddNode(machine()->Float32Neg(), a); }
648 Node* Float32Sqrt(Node* a) { return AddNode(machine()->Float32Sqrt(), a); }
650 return AddNode(machine()->Float32Equal(), a, b);
656 return AddNode(machine()->Float32LessThan(), a, b);
659 return AddNode(machine()->Float32LessThanOrEqual(), a, b);
666 return AddNode(machine()->Float32Max(), a, b);
669 return AddNode(machine()->Float32Min(), a, b);
672 return AddNode(machine()->Float64Add(), a, b);
675 return AddNode(machine()->Float64Sub(), a, b);
678 return AddNode(machine()->Float64Mul(), a, b);
681 return AddNode(machine()->Float64Div(), a, b);
684 return AddNode(machine()->Float64Mod(), a, b);
687 return AddNode(machine()->Float64Max(), a, b);
690 return AddNode(machine()->Float64Min(), a, b);
692 Node* Float64Abs(Node* a) { return AddNode(machine()->Float64Abs(), a); }
693 Node* Float64Neg(Node* a) { return AddNode(machine()->Float64Neg(), a); }
694 Node* Float64Acos(Node* a) { return AddNode(machine()->Float64Acos(), a); }
695 Node* Float64Acosh(Node* a) { return AddNode(machine()->Float64Acosh(), a); }
696 Node* Float64Asin(Node* a) { return AddNode(machine()->Float64Asin(), a); }
697 Node* Float64Asinh(Node* a) { return AddNode(machine()->Float64Asinh(), a); }
698 Node* Float64Atan(Node* a) { return AddNode(machine()->Float64Atan(), a); }
699 Node* Float64Atanh(Node* a) { return AddNode(machine()->Float64Atanh(), a); }
701 return AddNode(machine()->Float64Atan2(), a, b);
703 Node* Float64Cbrt(Node* a) { return AddNode(machine()->Float64Cbrt(), a); }
704 Node* Float64Cos(Node* a) { return AddNode(machine()->Float64Cos(), a); }
705 Node* Float64Cosh(Node* a) { return AddNode(machine()->Float64Cosh(), a); }
706 Node* Float64Exp(Node* a) { return AddNode(machine()->Float64Exp(), a); }
707 Node* Float64Expm1(Node* a) { return AddNode(machine()->Float64Expm1(), a); }
708 Node* Float64Log(Node* a) { return AddNode(machine()->Float64Log(), a); }
709 Node* Float64Log1p(Node* a) { return AddNode(machine()->Float64Log1p(), a); }
710 Node* Float64Log10(Node* a) { return AddNode(machine()->Float64Log10(), a); }
711 Node* Float64Log2(Node* a) { return AddNode(machine()->Float64Log2(), a); }
713 return AddNode(machine()->Float64Pow(), a, b);
715 Node* Float64Sin(Node* a) { return AddNode(machine()->Float64Sin(), a); }
716 Node* Float64Sinh(Node* a) { return AddNode(machine()->Float64Sinh(), a); }
717 Node* Float64Sqrt(Node* a) { return AddNode(machine()->Float64Sqrt(), a); }
718 Node* Float64Tan(Node* a) { return AddNode(machine()->Float64Tan(), a); }
719 Node* Float64Tanh(Node* a) { return AddNode(machine()->Float64Tanh(), a); }
721 return AddNode(machine()->Float64Equal(), a, b);
727 return AddNode(machine()->Float64LessThan(), a, b);
730 return AddNode(machine()->Float64LessThanOrEqual(), a, b);
737 return AddNode(machine()->Float32Select().op(), condition, b, c);
740 return AddNode(machine()->Float64Select().op(), condition, b, c);
745 return AddNode(machine()->BitcastTaggedToWord(), a);
748 return AddNode(machine()->BitcastTaggedToWordForTagAndSmiBits(), a);
751 return AddNode(machine()->BitcastMaybeObjectToWord(), a);
754 return AddNode(machine()->BitcastWordToTagged(), a);
757 return AddNode(machine()->BitcastWordToTaggedSigned(), a);
760 return AddNode(machine()->TruncateFloat64ToWord32(), a);
763 return AddNode(machine()->ChangeFloat32ToFloat64(), a);
766 return AddNode(machine()->ChangeInt32ToFloat64(), a);
769 return AddNode(machine()->ChangeInt64ToFloat64(), a);
772 return AddNode(machine()->ChangeUint32ToFloat64(), a);
775 return AddNode(machine()->ChangeFloat64ToInt32(), a);
778 return AddNode(machine()->ChangeFloat64ToInt64(), a);
781 return AddNode(machine()->ChangeFloat64ToUint32(), a);
784 return AddNode(machine()->ChangeFloat64ToUint64(), a);
787 return AddNode(machine()->TruncateFloat64ToUint32(), a);
790 return AddNode(machine()->TruncateFloat32ToInt32(kind), a);
793 return AddNode(machine()->TruncateFloat32ToUint32(kind), a);
796 return AddNode(machine()->TryTruncateFloat32ToInt64(), a);
799 return AddNode(machine()->TryTruncateFloat64ToInt64(), a);
802 return AddNode(machine()->TryTruncateFloat32ToUint64(), a);
805 return AddNode(machine()->TryTruncateFloat64ToUint64(), a);
808 return AddNode(machine()->ChangeInt32ToInt64(), a);
811 return AddNode(machine()->ChangeUint32ToUint64(), a);
814 return AddNode(machine()->TruncateFloat64ToFloat32(), a);
817 return AddNode(machine()->TruncateInt64ToInt32(), a);
820 return AddNode(machine()->RoundFloat64ToInt32(), a);
823 return AddNode(machine()->RoundInt32ToFloat32(), a);
826 return AddNode(machine()->RoundInt64ToFloat32(), a);
829 return AddNode(machine()->RoundInt64ToFloat64(), a);
832 return AddNode(machine()->RoundUint32ToFloat32(), a);
835 return AddNode(machine()->RoundUint64ToFloat32(), a);
838 return AddNode(machine()->RoundUint64ToFloat64(), a);
841 return AddNode(machine()->BitcastFloat32ToInt32(), a);
844 return AddNode(machine()->BitcastFloat64ToInt64(), a);
847 return AddNode(machine()->BitcastInt32ToFloat32(), a);
850 return AddNode(machine()->BitcastInt64ToFloat64(), a);
853 return AddNode(machine()->Float32RoundDown().op(), a);
856 return AddNode(machine()->Float64RoundDown().op(), a);
859 return AddNode(machine()->Float32RoundUp().op(), a);
862 return AddNode(machine()->Float64RoundUp().op(), a);
865 return AddNode(machine()->Float32RoundTruncate().op(), a);
868 return AddNode(machine()->Float64RoundTruncate().op(), a);
871 return AddNode(machine()->Float64RoundTiesAway().op(), a);
874 return AddNode(machine()->Float32RoundTiesEven().op(), a);
877 return AddNode(machine()->Float64RoundTiesEven().op(), a);
880 return AddNode(machine()->Word32ReverseBytes(), a);
883 return AddNode(machine()->Word64ReverseBytes(), a);
888 return AddNode(machine()->Float64ExtractLowWord32(), a);
891 return AddNode(machine()->Float64ExtractHighWord32(), a);
894 return AddNode(machine()->Float64InsertLowWord32(), a, b);
897 return AddNode(machine()->Float64InsertHighWord32(), a, b);
900 return AddNode(machine()->Float64SilenceNaN(), a);
905 return AddNode(machine()->S128Const(value));
907 Node* I64x2Splat(Node* a) { return AddNode(machine()->I64x2Splat(), a); }
909 return AddNode(machine()->I64x2SplatI32Pair(), a, b);
911 Node* I32x4Splat(Node* a) { return AddNode(machine()->I32x4Splat(), a); }
912 Node* I16x8Splat(Node* a) { return AddNode(machine()->I16x8Splat(), a); }
913 Node* I8x16Splat(Node* a) { return AddNode(machine()->I8x16Splat(), a); }
915 Node* I8x16BitMask(Node* a) { return AddNode(machine()->I8x16BitMask(), a); }
918 return AddNode(machine()->I8x16Eq(), a, b);
922 Node* LoadFramePointer() { return AddNode(machine()->LoadFramePointer()); }
924 return AddNode(machine()->LoadParentFramePointer());