- Main Page
- Modules
- Classes

- Search for |

# REG (generic)
[REG: Register Object]

## Functions

BOOL | LEVEL_BASE::REG_is_reg (REG reg)
BOOL | LEVEL_BASE::REG_is_pseudo (REG reg)
BOOL | LEVEL_BASE::REG_is_gr (REG reg)
BOOL | LEVEL_BASE::REG_is_fr (REG reg)
BOOL | LEVEL_BASE::REG_is_br (REG reg)
BOOL | LEVEL_BASE::REG_is_gr64 (REG reg)
BOOL | LEVEL_BASE::REG_is_gr32 (REG reg)
BOOL | LEVEL_BASE::REG_is_gr16 (REG reg)
BOOL | LEVEL_BASE::REG_is_gr8 (REG reg)
BOOL | LEVEL_BASE::REG_is_seg (REG reg)
BOOL | LEVEL_BASE::REG_is_pin_gr (REG reg)
REG | LEVEL_BASE::REG_INVALID ()
BOOL | LEVEL_BASE::REG_valid (REG reg)
BOOL | LEVEL_BASE::REG_is_pin64 (REG reg)
REG | LEVEL_BASE::REG_FullRegName (const REG reg)
string | LEVEL_BASE::REG_StringShort (REG reg)
REG | LEVEL_PINCLIENT::PIN_ClaimToolRegister ()

## Detailed Description

Availability:
  Mode: JIT & Probe
  O/S: Linux & Windows
  CPU: All

## Function Documentation

REG LEVEL_PINCLIENT::PIN_ClaimToolRegister | ( |  | ) |

| Claim a PIN scratch register for use by this tool. By using this function to claim scratch registers tools can avoid contention if a tool is composed from different components each of which uses scratch registers. Using this function is to be preferred to directly using the REG_INST_Gn register enumerations.

Note that although this function is available in probe mode, use of Pin scratch registers is not currently supported in probe mode, so this function is useless there.

Returns:
  A register to be used, or REG_INVALID() if all of the scratch registers available for tool use have been allocated.

Availability:
  Mode: JIT & Probe
  O/S: Linux, Windows & MacOS
  CPU: All

REG LEVEL_BASE::REG_FullRegName | ( | const REG | reg | ) |

| If reg is a partial register, return the name of the full register containing it. For example, on IA-32, if reg is REG_AL, the function will return REG_EAX. If reg is a full register, the function returns it unchanged.

REG LEVEL_BASE::REG_INVALID | ( |  | ) |

| Return the invalid register.

BOOL LEVEL_BASE::REG_is_br | ( | REG | reg | ) |

Returns:
  true if reg is a branch register

BOOL LEVEL_BASE::REG_is_fr | ( | REG | reg | ) |

Returns:
  true if reg is a floating register

BOOL LEVEL_BASE::REG_is_gr | ( | REG | reg | ) |

Returns:
  true if reg is a FULL WIDTH general purpose register

BOOL LEVEL_BASE::REG_is_gr16 | ( | REG | reg | ) |

Returns:
  true if reg is a 16-bit general purpose register

BOOL LEVEL_BASE::REG_is_gr32 | ( | REG | reg | ) |

Returns:
  true if reg is a 32-bit general purpose register

BOOL LEVEL_BASE::REG_is_gr64 | ( | REG | reg | ) |

Returns:
  true if reg is a 64-bit general purpose register

BOOL LEVEL_BASE::REG_is_gr8 | ( | REG | reg | ) |

Returns:
  true if reg is a 8-bit general purpose register

BOOL LEVEL_BASE::REG_is_pin64 | ( | REG | reg | ) |

Returns:
  true if reg is a 64-bit pin register

BOOL LEVEL_BASE::REG_is_pin_gr | ( | REG | reg | ) |

Returns:
  true if reg is a FULL WIDTH general purpose pin virtual register

BOOL LEVEL_BASE::REG_is_seg | ( | REG | reg | ) |

Returns:
  true if reg is a segment register

string LEVEL_BASE::REG_StringShort | ( | REG | reg | ) |

| convert a REG into a printable string

BOOL LEVEL_BASE::REG_valid | ( | REG | reg | ) |

| Check if register is valid.