1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2  * vim: set ts=8 sts=2 et sw=2 tw=80:
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef jit_none_LIR_none_h
8 #define jit_none_LIR_none_h
9 
10 namespace js {
11 namespace jit {
12 
13 class LUnboxFloatingPoint : public LInstruction {
14  public:
15   LIR_HEADER(UnboxFloatingPoint)
16   static const size_t Input = 0;
17 
mir()18   MUnbox* mir() const { MOZ_CRASH(); }
19 
output()20   const LDefinition* output() const { MOZ_CRASH(); }
type()21   MIRType type() const { MOZ_CRASH(); }
22 };
23 
24 class LTableSwitch : public LInstruction {
25  public:
LIR_HEADER(TableSwitch)26   LIR_HEADER(TableSwitch)
27   MTableSwitch* mir() { MOZ_CRASH(); }
28 
index()29   const LAllocation* index() { MOZ_CRASH(); }
tempInt()30   const LDefinition* tempInt() { MOZ_CRASH(); }
tempPointer()31   const LDefinition* tempPointer() { MOZ_CRASH(); }
32 };
33 
34 class LTableSwitchV : public LInstruction {
35  public:
LIR_HEADER(TableSwitchV)36   LIR_HEADER(TableSwitchV)
37   MTableSwitch* mir() { MOZ_CRASH(); }
38 
tempInt()39   const LDefinition* tempInt() { MOZ_CRASH(); }
tempFloat()40   const LDefinition* tempFloat() { MOZ_CRASH(); }
tempPointer()41   const LDefinition* tempPointer() { MOZ_CRASH(); }
42 
43   static const size_t InputValue = 0;
44 };
45 
46 class LWasmUint32ToFloat32 : public LInstructionHelper<1, 1, 0> {
47  public:
LWasmUint32ToFloat32(const LAllocation &)48   explicit LWasmUint32ToFloat32(const LAllocation&)
49       : LInstructionHelper(Opcode::Invalid) {
50     MOZ_CRASH();
51   }
52 };
53 
54 class LUnbox : public LInstructionHelper<1, 2, 0> {
55  public:
mir()56   MUnbox* mir() const { MOZ_CRASH(); }
payload()57   const LAllocation* payload() { MOZ_CRASH(); }
type()58   const LAllocation* type() { MOZ_CRASH(); }
extraName()59   const char* extraName() const { MOZ_CRASH(); }
60 };
61 class LDivI : public LBinaryMath<1> {
62  public:
LDivI(const LAllocation &,const LAllocation &,const LDefinition &)63   LDivI(const LAllocation&, const LAllocation&, const LDefinition&)
64       : LBinaryMath(Opcode::Invalid) {
65     MOZ_CRASH();
66   }
mir()67   MDiv* mir() const { MOZ_CRASH(); }
68 };
69 class LDivPowTwoI : public LInstructionHelper<1, 1, 0> {
70  public:
LDivPowTwoI(const LAllocation &,int32_t)71   LDivPowTwoI(const LAllocation&, int32_t)
72       : LInstructionHelper(Opcode::Invalid) {
73     MOZ_CRASH();
74   }
numerator()75   const LAllocation* numerator() { MOZ_CRASH(); }
shift()76   int32_t shift() { MOZ_CRASH(); }
mir()77   MDiv* mir() const { MOZ_CRASH(); }
78 };
79 class LModI : public LBinaryMath<1> {
80  public:
LModI(const LAllocation &,const LAllocation &,const LDefinition &)81   LModI(const LAllocation&, const LAllocation&, const LDefinition&)
82       : LBinaryMath(Opcode::Invalid) {
83     MOZ_CRASH();
84   }
85 
callTemp()86   const LDefinition* callTemp() { MOZ_CRASH(); }
mir()87   MMod* mir() const { MOZ_CRASH(); }
88 };
89 class LWasmUint32ToDouble : public LInstructionHelper<1, 1, 0> {
90  public:
LWasmUint32ToDouble(const LAllocation &)91   explicit LWasmUint32ToDouble(const LAllocation&)
92       : LInstructionHelper(Opcode::Invalid) {
93     MOZ_CRASH();
94   }
95 };
96 class LModPowTwoI : public LInstructionHelper<1, 1, 0> {
97  public:
shift()98   int32_t shift() { MOZ_CRASH(); }
LModPowTwoI(const LAllocation & lhs,int32_t shift)99   LModPowTwoI(const LAllocation& lhs, int32_t shift)
100       : LInstructionHelper(Opcode::Invalid) {
101     MOZ_CRASH();
102   }
mir()103   MMod* mir() const { MOZ_CRASH(); }
104 };
105 
106 class LMulI : public LInstruction {};
107 
108 }  // namespace jit
109 }  // namespace js
110 
111 #endif /* jit_none_LIR_none_h */
112