190bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//===-- R600Defines.h - R600 Helper Macros ----------------------*- C++ -*-===//
290bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//
390bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//                     The LLVM Compiler Infrastructure
490bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//
590bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard// This file is distributed under the University of Illinois Open Source
690bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard// License. See LICENSE.TXT for details.
790bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//
890bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard//===----------------------------------------------------------------------===//
990bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard
1090bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard
1190bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard// Operand Flags
1290bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_CLAMP (1 << 0)
1390bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_NEG   (1 << 1)
1490bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_ABS   (1 << 2)
1590bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_MASK  (1 << 3)
1690bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_PUSH  (1 << 4)
1790bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define MO_FLAG_NOT_LAST  (1 << 5)
1890bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define NUM_MO_FLAGS 6
1990bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard
2090bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard// Helper for finding getting the operand index for the instruction flags
2190bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard// operand.
2290bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard#define GET_FLAG_OPERAND_IDX(Flags) (((Flags) >> 7) & 0x3)
2390bd1d52bbf95947955a66ec67f5f6c7dc87119aTom Stellard
24