| Index: src/assembler_constants_ia32.h
|
| diff --git a/src/assembler_constants_ia32.h b/src/assembler_constants_ia32.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..be521c94a1485a3594ab71c7674a01fd094e74ca
|
| --- /dev/null
|
| +++ b/src/assembler_constants_ia32.h
|
| @@ -0,0 +1,105 @@
|
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +//
|
| +// Modified by the Subzero authors.
|
| +//
|
| +//===- subzero/src/assembler_constants_ia32.h - x86-32 consts ---*- C++ -*-===//
|
| +//
|
| +// The Subzero Code Generator
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +//
|
| +// This file contains constants related to the assembler encoding
|
| +// of x86-32 operands.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#ifndef SUBZERO_SRC_ASSEMBLER_CONSTANTS_IA32_H_
|
| +#define SUBZERO_SRC_ASSEMBLER_CONSTANTS_IA32_H_
|
| +
|
| +namespace Ice {
|
| +namespace x86 {
|
| +
|
| +// Unify w/ Ice...
|
| +enum Register {
|
| + kFirstFreeCpuRegister = 0,
|
| + EAX = 0,
|
| + ECX = 1,
|
| + EDX = 2,
|
| + EBX = 3,
|
| + ESP = 4,
|
| + EBP = 5,
|
| + ESI = 6,
|
| + EDI = 7,
|
| + kLastFreeCpuRegister = 7,
|
| + kNoRegister = -1 // Signals an illegal register.
|
| +};
|
| +
|
| +// Unify w/ Ice...
|
| +enum ByteRegister {
|
| + AL = 0,
|
| + CL = 1,
|
| + DL = 2,
|
| + BL = 3,
|
| + AH = 4,
|
| + CH = 5,
|
| + DH = 6,
|
| + BH = 7,
|
| + kNoByteRegister = -1 // Signals an illegal register.
|
| +};
|
| +
|
| +// Unify w/ Ice...
|
| +enum XmmRegister {
|
| + XMM0 = 0,
|
| + XMM1 = 1,
|
| + XMM2 = 2,
|
| + XMM3 = 3,
|
| + XMM4 = 4,
|
| + XMM5 = 5,
|
| + XMM6 = 6,
|
| + XMM7 = 7,
|
| + kNoXmmRegister = -1 // Signals an illegal register.
|
| +};
|
| +
|
| +// Unify w/ Ice...
|
| +enum ScaleFactor { TIMES_1 = 0, TIMES_2 = 1, TIMES_4 = 2, TIMES_8 = 3 };
|
| +
|
| +// Unify w/ Ice...
|
| +enum Condition {
|
| + DID_OVERFLOW = 0,
|
| + NO_OVERFLOW = 1,
|
| + BELOW = 2,
|
| + ABOVE_EQUAL = 3,
|
| + EQUAL = 4,
|
| + NOT_EQUAL = 5,
|
| + BELOW_EQUAL = 6,
|
| + ABOVE = 7,
|
| + SIGN = 8,
|
| + NOT_SIGN = 9,
|
| + PARITY_EVEN = 10,
|
| + PARITY_ODD = 11,
|
| + LESS = 12,
|
| + GREATER_EQUAL = 13,
|
| + LESS_EQUAL = 14,
|
| + GREATER = 15,
|
| +
|
| + ZERO = EQUAL,
|
| + NOT_ZERO = NOT_EQUAL,
|
| + NEGATIVE = SIGN,
|
| + POSITIVE = NOT_SIGN,
|
| + CARRY = BELOW,
|
| + NOT_CARRY = ABOVE_EQUAL
|
| +};
|
| +
|
| +// The largest multibyte nop we will emit. This could go up to 15 if it
|
| +// becomes important to us.
|
| +const int MAX_NOP_SIZE = 8;
|
| +
|
| +} // end of namespace x86
|
| +} // end of namespace Ice
|
| +
|
| +#endif // SUBZERO_SRC_ASSEMBLER_CONSTANTS_IA32_H_
|
|
|