sourcepawn/jit/jit_function.h
author Ruben Gonzalez <drifter01620@gmail.com>
Thu May 22 09:49:27 2014 -0400 (2014-05-22)
changeset 4378 568f4497ef4a
parent 4031 852cf4415d12
permissions -rw-r--r--
Update CS:GO team score gamedata.
dvander@4013
     1
// vim: set ts=8 sts=2 sw=2 tw=99 et:
dvander@2226
     2
#ifndef _INCLUDE_SOURCEPAWN_JIT2_FUNCTION_H_
dvander@2226
     3
#define _INCLUDE_SOURCEPAWN_JIT2_FUNCTION_H_
dvander@2226
     4
dvander@2226
     5
#include <sp_vm_types.h>
dvander@4031
     6
#include <am-vector.h>
dvander@4013
     7
dvander@4013
     8
struct LoopEdge
dvander@4013
     9
{
dvander@4013
    10
  uint32_t offset;
dvander@4013
    11
  int32_t disp32;
dvander@4013
    12
};
dvander@2226
    13
dvander@2226
    14
class JitFunction
dvander@2226
    15
{
dvander@4013
    16
 public:
dvander@4013
    17
  JitFunction(void *entry_addr, cell_t pcode_offs, LoopEdge *edges, uint32_t nedges);
dvander@4013
    18
  ~JitFunction();
dvander@4013
    19
dvander@4013
    20
 public:
dvander@4013
    21
  void *GetEntryAddress() const;
dvander@4013
    22
  cell_t GetPCodeAddress() const;
dvander@4013
    23
  uint32_t NumLoopEdges() const {
dvander@4013
    24
    return nedges_;
dvander@4013
    25
  }
dvander@4013
    26
  const LoopEdge &GetLoopEdge(size_t i) const {
dvander@4013
    27
    assert(i < nedges_);
dvander@4013
    28
    return edges_[i];
dvander@4013
    29
  }
dvander@4013
    30
dvander@4013
    31
 private:
dvander@4013
    32
  void *m_pEntryAddr;
dvander@4013
    33
  cell_t m_PcodeOffs;
dvander@4013
    34
  LoopEdge *edges_;
dvander@4013
    35
  uint32_t nedges_;
dvander@2226
    36
};
dvander@2226
    37
dvander@2226
    38
#endif //_INCLUDE_SOURCEPAWN_JIT2_FUNCTION_H_