Operand.xcc

Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com).

Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.

This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.

Operand_name_— Names for the Operand enumeration.
extern const char *
Operand_name_(Operand this);
Operand_type— The OperandType of this Operand.
OperandType
Operand_type(Operand this);
Operand_enum— The RegClass or Immediate or Modifier or Regmask of this Operand.
int
Operand_enum(Operand this);
Operand_modifier— The Modifier of this Operand.
Modifier
Operand_modifier(Operand this);
Operand_immediate— The Immediate of this Operand.
Immediate
Operand_immediate(Operand this);
Operand_regClass— The RegClass of this Operand.
RegClass
Operand_regClass(Operand this);
Operand_regMask— The RegMask of this Operand.
RegMask
Operand_regMask(Operand this);
Operand_encode— This Operand encode function.
typedef void (*OperandEncode)(OperandDecoded decoded, void *restrict opcodes);
OperandEncode
Operand_encode(Operand this);
Operand_encodeImmediateValue— Encode a ImmediateValue.
static inline void
Operand_encodeImmediateValue(Operand this, ImmediateValue value, void *opcodes)
{
  (*Operand_encode(this))((OperandDecoded)(&value), opcodes);
}
Operand_decode— This Operand decode function.
typedef void (*OperandDecode)(const void *restrict opcodes, void *restrict result);
OperandDecode
Operand_decode(Operand this);
Operand_decodeImmediateValue— Macro to decode an ImmediateConstant.
#define Operand_decodeImmediateValue(operand, opcodes, value_ptr) \
    (*Operand_decode(operand))(opcodes, (void *restrict)(value_ptr))
OperandList— Sequence of Operand(s).
struct OperandList_ {
  uint8_t COUNT;
  Operand ITEMS[Operands_COUNT_MAX];
};
OperandList_count— Count the Operand(s) in this OperandList.
static inline int
OperandList_count(const_OperandList this)
{
  return OperandList_COUNT(this);
}
OperandList_access— Access the Operand at the given index.
static inline Operand
OperandList_access(const_OperandList this, int index)
{
  Except_REQUIRE(index >= 0 && index < OperandList_COUNT(this));
  return (Operand)OperandList_ITEMS(this)[index];
}
OperandList_items— For use by OperandList_FOREACH_Operand.
static inline const Operand *
OperandList_items(const_OperandList this)
{
  return OperandList_ITEMS(this);
}
OperandList_FOREACH_Operand— Iterate over this OperandList Operand(s).
#define OperandList_FOREACH_Operand(this, operand) { \
  const Operand *OperandList_ITEMS = OperandList_items(this); \
  int OperandList_COUNT = OperandList_count(this), OperandList_INDEX = 0; \
  for (; OperandList_INDEX < OperandList_COUNT; OperandList_INDEX++) { \
    int operand = OperandList_ITEMS[OperandList_INDEX];
#define OperandList_ENDEACH_Operand \
  } \
}
Operands_name_— Names for the Operands enumeration.
extern const char *
Operands_name_(Operands this);
Operands_operandList— This Operands OperandList.
const_OperandList
Operands_operandList(Operands this);
Operands_FOREACH_Operand— Iterate over this Operands Operand(s).
#define Operands_FOREACH_Operand(this, operand) \
  OperandList_FOREACH_Operand(Operands_operandList(this), operand) { \
  int Operands_INDEX = OperandList_INDEX;
#define Operands_ENDEACH_Operand \
  } OperandList_ENDEACH_Operand;
Operands_count— This Operands count of Operand(s).
int
Operands_count(Operands this);
Operands_access— Access the Operand at the given index.
Operand
Operands_access(Operands this, int index);
OperandsBuffer— Buffer used to encode or decode Operands.
struct OperandsBuffer_ {
  //@args
  OperandDecoded DECODED[Operands_COUNT_MAX];
#if (Operands_IMMEDIATE_COUNT_MAX > 0)
  ImmediateConstant_ CONSTANTS[Operands_IMMEDIATE_COUNT_MAX];
#endif//Operands_IMMEDIATE_COUNT_MAX
#if (Operands_REGMASK_COUNT_MAX > 0)
  RegisterSet_ REGISTERSETS[Operands_REGMASK_COUNT_MAX];
#endif//Operands_REGMASK_COUNT_MAX
};
Operands_encode— This Operands encode function.
typedef void (*OperandsEncode)(const_OperandsBuffer buffer, void *restrict opcodes);
OperandsEncode
Operands_encode(Operands this);
Operands_relocatableRank— Rank of relocatable Immediate in this Operands.
int
Operands_relocatableRank(Operands this);
Operands_relocatableOperand— Relocatable Operand in this Operands.
Operand
Operands_relocatableOperand(Operands this);
Operands_relocatableImmediate— Relocatable Immediate in this Operands.
Immediate
Operands_relocatableImmediate(Operands this);

Operands_decode -- This Operands decode function.

typedef void (*OperandsDecode)(const void *opcodes, OperandsBuffer buffer);
OperandsDecode
Operands_decode(Operands this);