public class

RoutineIOSlot

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.units.code.asm.type.RoutineIOSlot

Class Overview

Input/output elements used by routines. Those objects are used to define calling conventions. Currently, only 3 types of elements are supported:

- stack slots (single slot)
- platform register (single slot)
- pairs of platform registers (double slot)
(Note that there is no explicit types for pairs of stack slots.)

Summary

Nested Classes
enum RoutineIOSlot.TransformationRule  
enum RoutineIOSlot.Type  
Public Methods
static RoutineIOSlot createRegister(int index)
Create a register slot entry.
static RoutineIOSlot createRegisterPair(int index1, int index2)
Create a special dual-slot entry for register pairs.
static RoutineIOSlot createRegisterPairEndianDep(int index1, int index2)
static RoutineIOSlot createStackSlot(int slotIndex)
Create a stack slot entry.
boolean equals(Object obj)
RoutineIOSlot.Type getType()
int getValue()
Get the slot index or native register id, depending on the type of this object.
int getValue(Endianness endian)
Get the slot index or native register id, depending on the type of this object.
int getValue2(Endianness endian)
For register pairs, retrieve the native register id of the second register of the pair.
int getValue2()
For register pairs, retrieve the native register id of the second register of the pair.
int hashCode()
String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public static RoutineIOSlot createRegister (int index)

Create a register slot entry. Register index as defined in processor specification.@param

public static RoutineIOSlot createRegisterPair (int index1, int index2)

Create a special dual-slot entry for register pairs. Register indexes and order are as defined in processor specification.

Parameters
index1 low register
index2 high register

public static RoutineIOSlot createRegisterPairEndianDep (int index1, int index2)

public static RoutineIOSlot createStackSlot (int slotIndex)

Create a stack slot entry. Stack slots are relative to the stack pointer at the called routine entry-point.@param

public boolean equals (Object obj)

public RoutineIOSlot.Type getType ()

public int getValue ()

Get the slot index or native register id, depending on the type of this object.

public int getValue (Endianness endian)

Get the slot index or native register id, depending on the type of this object. To be used for REGISTER_PAIR over getValue() which may return the wrong slot index.

public int getValue2 (Endianness endian)

For register pairs, retrieve the native register id of the second register of the pair.

public int getValue2 ()

For register pairs, retrieve the native register id of the second register of the pair.

public int hashCode ()

public String toString ()