/[pcsx2_0.9.7]/trunk/pcsx2/x86/BaseblockEx.h
ViewVC logotype

Diff of /trunk/pcsx2/x86/BaseblockEx.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by william, Tue Sep 7 03:24:11 2010 UTC revision 62 by william, Tue Sep 7 11:08:22 2010 UTC
# Line 78  public: Line 78  public:
78          int LastIndex (u32 startpc) const;          int LastIndex (u32 startpc) const;
79          BASEBLOCKEX* GetByX86(uptr ip);          BASEBLOCKEX* GetByX86(uptr ip);
80    
81          __forceinline int Index (u32 startpc) const          __fi int Index (u32 startpc) const
82          {          {
83                  int idx = LastIndex(startpc);                  int idx = LastIndex(startpc);
84                  // fixme: I changed the parenthesis to be unambiguous, but this needs to be checked to see if ((x or y or z) and w)                  // fixme: I changed the parenthesis to be unambiguous, but this needs to be checked to see if ((x or y or z) and w)
# Line 91  public: Line 91  public:
91                          return idx;                          return idx;
92          }          }
93    
94          __forceinline BASEBLOCKEX* operator[](int idx)          __fi BASEBLOCKEX* operator[](int idx)
95          {          {
96                  if (idx < 0 || idx >= (int)blocks.size())                  if (idx < 0 || idx >= (int)blocks.size())
97                          return 0;                          return 0;
98                  return &blocks[idx];                  return &blocks[idx];
99          }          }
100    
101          __forceinline BASEBLOCKEX* Get(u32 startpc)          __fi BASEBLOCKEX* Get(u32 startpc)
102          {          {
103                  return (*this)[Index(startpc)];                  return (*this)[Index(startpc)];
104          }          }
105    
106          __forceinline void Remove(int idx)          __fi void Remove(int idx)
107          {          {
108                  //u32 startpc = blocks[idx].startpc;                  //u32 startpc = blocks[idx].startpc;
109                  std::pair<linkiter_t, linkiter_t> range = links.equal_range(blocks[idx].startpc);                  std::pair<linkiter_t, linkiter_t> range = links.equal_range(blocks[idx].startpc);
# Line 127  public: Line 127  public:
127    
128          void Link(u32 pc, s32* jumpptr);          void Link(u32 pc, s32* jumpptr);
129    
130          __forceinline void Reset()          __fi void Reset()
131          {          {
132                  blocks.clear();                  blocks.clear();
133                  links.clear();                  links.clear();

Legend:
Removed from v.31  
changed lines
  Added in v.62

  ViewVC Help
Powered by ViewVC 1.1.22