| Index: src/compiler/arm/instruction-codes-arm.h
|
| diff --git a/src/compiler/arm/instruction-codes-arm.h b/src/compiler/arm/instruction-codes-arm.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b222bb369b340c52a3610ceba396c721d898e804
|
| --- /dev/null
|
| +++ b/src/compiler/arm/instruction-codes-arm.h
|
| @@ -0,0 +1,84 @@
|
| +// 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_ARM_INSTRUCTION_CODES_ARM_H_
|
| +#define V8_COMPILER_ARM_INSTRUCTION_CODES_ARM_H_
|
| +
|
| +namespace v8 {
|
| +namespace internal {
|
| +namespace compiler {
|
| +
|
| +// ARM-specific opcodes that specify which assembly sequence to emit.
|
| +// Most opcodes specify a single instruction.
|
| +#define TARGET_ARCH_OPCODE_LIST(V) \
|
| + V(ArmAdd) \
|
| + V(ArmAnd) \
|
| + V(ArmBic) \
|
| + V(ArmCmp) \
|
| + V(ArmCmn) \
|
| + V(ArmTst) \
|
| + V(ArmTeq) \
|
| + V(ArmOrr) \
|
| + V(ArmEor) \
|
| + V(ArmSub) \
|
| + V(ArmRsb) \
|
| + V(ArmMul) \
|
| + V(ArmMla) \
|
| + V(ArmMls) \
|
| + V(ArmSdiv) \
|
| + V(ArmUdiv) \
|
| + V(ArmMov) \
|
| + V(ArmMvn) \
|
| + V(ArmBfc) \
|
| + V(ArmUbfx) \
|
| + V(ArmCallCodeObject) \
|
| + V(ArmCallJSFunction) \
|
| + V(ArmCallAddress) \
|
| + V(ArmPush) \
|
| + V(ArmDrop) \
|
| + V(ArmVcmpF64) \
|
| + V(ArmVaddF64) \
|
| + V(ArmVsubF64) \
|
| + V(ArmVmulF64) \
|
| + V(ArmVmlaF64) \
|
| + V(ArmVmlsF64) \
|
| + V(ArmVdivF64) \
|
| + V(ArmVmodF64) \
|
| + V(ArmVnegF64) \
|
| + V(ArmVcvtF64S32) \
|
| + V(ArmVcvtF64U32) \
|
| + V(ArmVcvtS32F64) \
|
| + V(ArmVcvtU32F64) \
|
| + V(ArmFloat64Load) \
|
| + V(ArmFloat64Store) \
|
| + V(ArmLoadWord8) \
|
| + V(ArmStoreWord8) \
|
| + V(ArmLoadWord16) \
|
| + V(ArmStoreWord16) \
|
| + V(ArmLoadWord32) \
|
| + V(ArmStoreWord32) \
|
| + V(ArmStoreWriteBarrier)
|
| +
|
| +
|
| +// 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.
|
| +#define TARGET_ADDRESSING_MODE_LIST(V) \
|
| + V(Offset_RI) /* [%r0 + K] */ \
|
| + V(Offset_RR) /* [%r0 + %r1] */ \
|
| + V(Operand2_I) /* K */ \
|
| + V(Operand2_R) /* %r0 */ \
|
| + V(Operand2_R_ASR_I) /* %r0 ASR K */ \
|
| + V(Operand2_R_LSL_I) /* %r0 LSL K */ \
|
| + V(Operand2_R_LSR_I) /* %r0 LSR K */ \
|
| + V(Operand2_R_ASR_R) /* %r0 ASR %r1 */ \
|
| + V(Operand2_R_LSL_R) /* %r0 LSL %r1 */ \
|
| + V(Operand2_R_LSR_R) /* %r0 LSR %r1 */
|
| +
|
| +} // namespace compiler
|
| +} // namespace internal
|
| +} // namespace v8
|
| +
|
| +#endif // V8_COMPILER_ARM_INSTRUCTION_CODES_ARM_H_
|
|
|