Chromium Code Reviews| Index: src/compiler/mips/instruction-codes-mips.h |
| diff --git a/src/compiler/mips/instruction-codes-mips.h b/src/compiler/mips/instruction-codes-mips.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..569e9f8c282893b239cdfbd68b920610f176e57b |
| --- /dev/null |
| +++ b/src/compiler/mips/instruction-codes-mips.h |
| @@ -0,0 +1,83 @@ |
| +// Copyright 2014 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef V8_COMPILER_MIPS_INSTRUCTION_CODES_MIPS_H_ |
| +#define V8_COMPILER_MIPS_INSTRUCTION_CODES_MIPS_H_ |
| + |
| +namespace v8 { |
| +namespace internal { |
| +namespace compiler { |
| + |
| +// MIPS-specific opcodes that specify which assembly sequence to emit. |
| +// Most opcodes specify a single instruction. |
| +#define TARGET_ARCH_OPCODE_LIST(V) \ |
| + V(MipsAdd) \ |
| + V(MipsAddOvf) \ |
| + V(MipsSub) \ |
| + V(MipsSubOvf) \ |
| + V(MipsMul) \ |
| + V(MipsDiv) \ |
| + V(MipsDivU) \ |
| + V(MipsMod) \ |
| + V(MipsModU) \ |
| + V(MipsAnd) \ |
| + V(MipsOr) \ |
| + V(MipsXor) \ |
| + V(MipsShl) \ |
| + V(MipsShr) \ |
| + V(MipsSar) \ |
| + V(MipsRor) \ |
| + V(MipsMov) \ |
| + V(MipsTst) \ |
| + V(MipsCmp) \ |
| + V(MipsFloat64Cmp) \ |
|
titzer
2014/09/24 15:23:32
Consider naming these opcodes as close as possible
Benedikt Meurer
2014/09/25 05:37:10
Yep, it's on my TODO list for ARM.
paul.l...
2014/09/25 17:18:39
Done.
|
| + V(MipsFloat64Add) \ |
| + V(MipsFloat64Sub) \ |
| + V(MipsFloat64Mul) \ |
| + V(MipsFloat64Div) \ |
| + V(MipsFloat64Mod) \ |
| + V(MipsFloat64ToInt32) \ |
| + V(MipsFloat64ToUint32) \ |
| + V(MipsInt32ToFloat64) \ |
| + V(MipsUint32ToFloat64) \ |
| + V(MipsLb) \ |
| + V(MipsLbu) \ |
| + V(MipsSb) \ |
| + V(MipsLh) \ |
| + V(MipsLhu) \ |
| + V(MipsSh) \ |
| + V(MipsLw) \ |
| + V(MipsSw) \ |
| + V(MipsLwc1) \ |
| + V(MipsSwc1) \ |
| + V(MipsLdc1) \ |
| + V(MipsSdc1) \ |
| + V(MipsPush) \ |
| + V(MipsStoreWriteBarrier) |
| + |
| + |
| +// Addressing modes represent the "shape" of inputs to an instruction. |
| +// Many instructions support multiple addressing modes. Addressing modes |
| +// are encoded into the InstructionCode of the instruction and tell the |
| +// code generator after register allocation which assembler method to call. |
| +// |
| +// We use the following local notation for addressing modes: |
| +// |
| +// R = register |
| +// O = register or stack slot |
| +// D = double register |
| +// I = immediate (handle, external, int32) |
| +// MRI = [register + immediate] |
| +// MRR = [register + register] |
| +// TODO(plind): Add the new r6 address modes. |
| +#define TARGET_ADDRESSING_MODE_LIST(V) \ |
| + V(MRI) /* [%r0 + K] */ \ |
| + V(MRR) /* [%r0 + %r1] */ |
| + |
| + |
| +} // namespace compiler |
| +} // namespace internal |
| +} // namespace v8 |
| + |
| +#endif // V8_COMPILER_MIPS_INSTRUCTION_CODES_MIPS_H_ |