| Index: src/compiler/ia32/code-generator-ia32.cc
|
| diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc
|
| index 4690a8cc05d869893778ed9f12c229b2b10f88c5..35c4502b40113d1b5e271e5dc16451515ae6e5c8 100644
|
| --- a/src/compiler/ia32/code-generator-ia32.cc
|
| +++ b/src/compiler/ia32/code-generator-ia32.cc
|
| @@ -38,7 +38,7 @@ class IA32OperandConverter : public InstructionOperandConverter {
|
| Operand OutputOperand() { return ToOperand(instr_->Output()); }
|
|
|
| Operand ToOperand(InstructionOperand* op, int extra = 0) {
|
| - if (op->IsRegister()) {
|
| + if (op->GeneratesRegister()) {
|
| DCHECK(extra == 0);
|
| return Operand(ToRegister(op));
|
| } else if (op->IsDoubleRegister()) {
|
| @@ -222,7 +222,7 @@ class OutOfLineTruncateDoubleToI final : public OutOfLineCode {
|
| do { \
|
| auto result = i.OutputDoubleRegister(); \
|
| auto offset = i.InputRegister(0); \
|
| - if (instr->InputAt(1)->IsRegister()) { \
|
| + if (instr->InputAt(1)->GeneratesRegister()) { \
|
| __ cmp(offset, i.InputRegister(1)); \
|
| } else { \
|
| __ cmp(offset, i.InputImmediate(1)); \
|
| @@ -238,7 +238,7 @@ class OutOfLineTruncateDoubleToI final : public OutOfLineCode {
|
| do { \
|
| auto result = i.OutputRegister(); \
|
| auto offset = i.InputRegister(0); \
|
| - if (instr->InputAt(1)->IsRegister()) { \
|
| + if (instr->InputAt(1)->GeneratesRegister()) { \
|
| __ cmp(offset, i.InputRegister(1)); \
|
| } else { \
|
| __ cmp(offset, i.InputImmediate(1)); \
|
| @@ -253,7 +253,7 @@ class OutOfLineTruncateDoubleToI final : public OutOfLineCode {
|
| #define ASSEMBLE_CHECKED_STORE_FLOAT(asm_instr) \
|
| do { \
|
| auto offset = i.InputRegister(0); \
|
| - if (instr->InputAt(1)->IsRegister()) { \
|
| + if (instr->InputAt(1)->GeneratesRegister()) { \
|
| __ cmp(offset, i.InputRegister(1)); \
|
| } else { \
|
| __ cmp(offset, i.InputImmediate(1)); \
|
| @@ -268,14 +268,14 @@ class OutOfLineTruncateDoubleToI final : public OutOfLineCode {
|
| #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr) \
|
| do { \
|
| auto offset = i.InputRegister(0); \
|
| - if (instr->InputAt(1)->IsRegister()) { \
|
| + if (instr->InputAt(1)->GeneratesRegister()) { \
|
| __ cmp(offset, i.InputRegister(1)); \
|
| } else { \
|
| __ cmp(offset, i.InputImmediate(1)); \
|
| } \
|
| Label done; \
|
| __ j(above_equal, &done, Label::kNear); \
|
| - if (instr->InputAt(2)->IsRegister()) { \
|
| + if (instr->InputAt(2)->GeneratesRegister()) { \
|
| __ asm_instr(i.MemoryOperand(3), i.InputRegister(2)); \
|
| } else { \
|
| __ asm_instr(i.MemoryOperand(3), i.InputImmediate(2)); \
|
| @@ -1361,15 +1361,15 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| IA32OperandConverter g(this, NULL);
|
| // Dispatch on the source and destination operand kinds. Not all
|
| // combinations are possible.
|
| - if (source->IsRegister()) {
|
| - DCHECK(destination->IsRegister() || destination->IsStackSlot());
|
| + if (source->GeneratesRegister()) {
|
| + DCHECK(destination->GeneratesRegister() || destination->IsStackSlot());
|
| Register src = g.ToRegister(source);
|
| Operand dst = g.ToOperand(destination);
|
| __ mov(dst, src);
|
| } else if (source->IsStackSlot()) {
|
| - DCHECK(destination->IsRegister() || destination->IsStackSlot());
|
| + DCHECK(destination->GeneratesRegister() || destination->IsStackSlot());
|
| Operand src = g.ToOperand(source);
|
| - if (destination->IsRegister()) {
|
| + if (destination->GeneratesRegister()) {
|
| Register dst = g.ToRegister(destination);
|
| __ mov(dst, src);
|
| } else {
|
| @@ -1383,7 +1383,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| Handle<HeapObject> src = src_constant.ToHeapObject();
|
| int offset;
|
| if (IsMaterializableFromFrame(src, &offset)) {
|
| - if (destination->IsRegister()) {
|
| + if (destination->GeneratesRegister()) {
|
| Register dst = g.ToRegister(destination);
|
| __ mov(dst, Operand(ebp, offset));
|
| } else {
|
| @@ -1392,7 +1392,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| __ push(Operand(ebp, offset));
|
| __ pop(dst);
|
| }
|
| - } else if (destination->IsRegister()) {
|
| + } else if (destination->GeneratesRegister()) {
|
| Register dst = g.ToRegister(destination);
|
| __ LoadHeapObject(dst, src);
|
| } else {
|
| @@ -1406,7 +1406,7 @@ void CodeGenerator::AssembleMove(InstructionOperand* source,
|
| __ mov(dst, src);
|
| }
|
| }
|
| - } else if (destination->IsRegister()) {
|
| + } else if (destination->GeneratesRegister()) {
|
| Register dst = g.ToRegister(destination);
|
| __ Move(dst, g.ToImmediate(source));
|
| } else if (destination->IsStackSlot()) {
|
| @@ -1471,12 +1471,12 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source,
|
| IA32OperandConverter g(this, NULL);
|
| // Dispatch on the source and destination operand kinds. Not all
|
| // combinations are possible.
|
| - if (source->IsRegister() && destination->IsRegister()) {
|
| + if (source->GeneratesRegister() && destination->GeneratesRegister()) {
|
| // Register-register.
|
| Register src = g.ToRegister(source);
|
| Register dst = g.ToRegister(destination);
|
| __ xchg(dst, src);
|
| - } else if (source->IsRegister() && destination->IsStackSlot()) {
|
| + } else if (source->GeneratesRegister() && destination->IsStackSlot()) {
|
| // Register-memory.
|
| __ xchg(g.ToRegister(source), g.ToOperand(destination));
|
| } else if (source->IsStackSlot() && destination->IsStackSlot()) {
|
|
|