Home | History | Annotate | Download | only in compiler

Lines Matching refs:InstructionOperand

32 class V8_EXPORT_PRIVATE InstructionOperand {
48 InstructionOperand() : InstructionOperand(INVALID) {}
99 static void ReplaceWith(InstructionOperand* dest,
100 const InstructionOperand* src) {
104 bool Equals(const InstructionOperand& that) const {
108 bool Compare(const InstructionOperand& that) const {
112 bool EqualsCanonicalized(const InstructionOperand& that) const {
116 bool CompareCanonicalized(const InstructionOperand& that) const {
120 bool InterferesWith(const InstructionOperand& other) const;
127 explicit InstructionOperand(Kind kind) : value_(KindField::encode(kind)) {}
137 typedef ZoneVector<InstructionOperand> InstructionOperandVector;
142 InstructionOperand op_;
152 static OperandType* cast(InstructionOperand* op) { \
157 static const OperandType* cast(const InstructionOperand* op) { \
162 static OperandType cast(const InstructionOperand& op) { \
167 class UnallocatedOperand final : public InstructionOperand {
360 : InstructionOperand(UNALLOCATED) {
367 class ConstantOperand : public InstructionOperand {
370 : InstructionOperand(CONSTANT) {
380 return InstructionOperand::New(zone, ConstantOperand(virtual_register));
390 class ImmediateOperand : public InstructionOperand {
395 : InstructionOperand(IMMEDIATE) {
413 return InstructionOperand::New(zone, ImmediateOperand(type, value));
424 class LocationOperand : public InstructionOperand {
428 LocationOperand(InstructionOperand::Kind operand_kind,
431 : InstructionOperand(operand_kind) {
503 static LocationOperand* cast(InstructionOperand* op) {
508 static const LocationOperand* cast(const InstructionOperand* op) {
513 static LocationOperand cast(const InstructionOperand& op) {
531 return InstructionOperand::New(zone, ExplicitOperand(kind, rep, index));
545 return InstructionOperand::New(zone, AllocatedOperand(kind, rep, index));
554 bool InstructionOperand::IsAnyLocationOperand() const {
558 bool InstructionOperand::IsLocationOperand() const {
563 bool InstructionOperand::IsFPLocationOperand() const {
568 bool InstructionOperand::IsAnyRegister() const {
575 bool InstructionOperand::IsRegister() const {
580 bool InstructionOperand::IsFPRegister() const {
585 bool InstructionOperand::IsFloatRegister() const {
591 bool InstructionOperand::IsDoubleRegister() const {
597 bool InstructionOperand::IsSimd128Register() const {
602 bool InstructionOperand::IsAnyStackSlot() const {
608 bool InstructionOperand::IsStackSlot() const {
613 bool InstructionOperand::IsFPStackSlot() const {
618 bool InstructionOperand::IsFloatStackSlot() const {
626 bool InstructionOperand::IsDoubleStackSlot() const {
634 bool InstructionOperand::IsSimd128StackSlot() const {
642 uint64_t InstructionOperand::GetCanonicalizedValue() const {
655 return InstructionOperand::KindField::update(
664 bool operator()(const InstructionOperand& a,
665 const InstructionOperand& b) const {
673 MoveOperands(const InstructionOperand& source,
674 const InstructionOperand& destination)
679 const InstructionOperand& source() const { return source_; }
680 InstructionOperand& source() { return source_; }
681 void set_source(const InstructionOperand& operand) { source_ = operand; }
683 const InstructionOperand& destination() const { return destination_; }
684 InstructionOperand& destination() { return destination_; }
685 void set_destination(const InstructionOperand& operand) {
694 void SetPending() { destination_ = InstructionOperand(); }
704 void Eliminate() { source_ = destination_ = InstructionOperand(); }
715 InstructionOperand source_;
716 InstructionOperand destination_;
738 MoveOperands* AddMove(const InstructionOperand& from,
739 const InstructionOperand& to) {
744 MoveOperands* AddMove(const InstructionOperand& from,
745 const InstructionOperand& to,
779 const ZoneVector<InstructionOperand>& reference_operands() const {
794 ZoneVector<InstructionOperand> reference_operands_;
805 const InstructionOperand* OutputAt(size_t i) const {
809 InstructionOperand* OutputAt(size_t i) {
815 const InstructionOperand* Output() const { return OutputAt(0); }
816 InstructionOperand* Output() { return OutputAt(0); }
819 const InstructionOperand* InputAt(size_t i) const {
823 InstructionOperand* InputAt(size_t i) {
829 const InstructionOperand* TempAt(size_t i) const {
833 InstructionOperand* TempAt(size_t i) {
853 size_t output_count, InstructionOperand* outputs,
854 size_t input_count, InstructionOperand* inputs,
855 size_t temp_count, InstructionOperand* temps) {
866 RoundUp(sizeof(Instruction), sizeof(InstructionOperand)) +
867 total_extra_ops * sizeof(InstructionOperand));
973 InstructionOperand* outputs, size_t input_count,
974 InstructionOperand* inputs, size_t temp_count,
975 InstructionOperand* temps);
984 InstructionOperand operands_[1];
1349 typedef ZoneVector<InstructionOperand> Inputs;
1361 const InstructionOperand& output() const { return output_; }
1362 InstructionOperand& output() { return output_; }
1366 InstructionOperand output_;