diff options
Diffstat (limited to 'lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp')
| -rw-r--r-- | lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp | 43 | 
1 files changed, 27 insertions, 16 deletions
diff --git a/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp b/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp index c1820bf66bc08..aaa6d286598ff 100644 --- a/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp +++ b/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp @@ -64,16 +64,30 @@ FunctionPass *llvm::createWebAssemblyCallIndirectFixup() {  static unsigned GetNonPseudoCallIndirectOpcode(const MachineInstr &MI) {    switch (MI.getOpcode()) {      using namespace WebAssembly; -  case PCALL_INDIRECT_VOID: return CALL_INDIRECT_VOID; -  case PCALL_INDIRECT_I32: return CALL_INDIRECT_I32; -  case PCALL_INDIRECT_I64: return CALL_INDIRECT_I64; -  case PCALL_INDIRECT_F32: return CALL_INDIRECT_F32; -  case PCALL_INDIRECT_F64: return CALL_INDIRECT_F64; -  case PCALL_INDIRECT_v16i8: return CALL_INDIRECT_v16i8; -  case PCALL_INDIRECT_v8i16: return CALL_INDIRECT_v8i16; -  case PCALL_INDIRECT_v4i32: return CALL_INDIRECT_v4i32; -  case PCALL_INDIRECT_v4f32: return CALL_INDIRECT_v4f32; -  default: return INSTRUCTION_LIST_END; +  case PCALL_INDIRECT_VOID: +    return CALL_INDIRECT_VOID; +  case PCALL_INDIRECT_I32: +    return CALL_INDIRECT_I32; +  case PCALL_INDIRECT_I64: +    return CALL_INDIRECT_I64; +  case PCALL_INDIRECT_F32: +    return CALL_INDIRECT_F32; +  case PCALL_INDIRECT_F64: +    return CALL_INDIRECT_F64; +  case PCALL_INDIRECT_v16i8: +    return CALL_INDIRECT_v16i8; +  case PCALL_INDIRECT_v8i16: +    return CALL_INDIRECT_v8i16; +  case PCALL_INDIRECT_v4i32: +    return CALL_INDIRECT_v4i32; +  case PCALL_INDIRECT_v2i64: +    return CALL_INDIRECT_v2i64; +  case PCALL_INDIRECT_v4f32: +    return CALL_INDIRECT_v4f32; +  case PCALL_INDIRECT_v2f64: +    return CALL_INDIRECT_v2f64; +  default: +    return INSTRUCTION_LIST_END;    }  } @@ -84,7 +98,7 @@ static bool IsPseudoCallIndirect(const MachineInstr &MI) {  bool WebAssemblyCallIndirectFixup::runOnMachineFunction(MachineFunction &MF) {    LLVM_DEBUG(dbgs() << "********** Fixing up CALL_INDIRECTs **********\n" -                    << MF.getName() << '\n'); +                    << "********** Function: " << MF.getName() << '\n');    bool Changed = false;    const WebAssemblyInstrInfo *TII = @@ -110,10 +124,8 @@ bool WebAssemblyCallIndirectFixup::runOnMachineFunction(MachineFunction &MF) {          Ops.push_back(MachineOperand::CreateImm(0));          for (const MachineOperand &MO : -                 make_range(MI.operands_begin() + -                                MI.getDesc().getNumDefs() + 1, -                            MI.operands_begin() + -                                MI.getNumExplicitOperands())) +             make_range(MI.operands_begin() + MI.getDesc().getNumDefs() + 1, +                        MI.operands_begin() + MI.getNumExplicitOperands()))            Ops.push_back(MO);          Ops.push_back(MI.getOperand(MI.getDesc().getNumDefs())); @@ -133,4 +145,3 @@ bool WebAssemblyCallIndirectFixup::runOnMachineFunction(MachineFunction &MF) {    return Changed;  } -  | 
