| Index: src/IceFixups.h | 
| diff --git a/src/IceFixups.h b/src/IceFixups.h | 
| index 7144aa8d093355e5b9d3c7cc942112d4ba5d4db3..b52572fbd20eafc7e65350f7e99eb15c58c38a24 100644 | 
| --- a/src/IceFixups.h | 
| +++ b/src/IceFixups.h | 
| @@ -14,19 +14,39 @@ | 
| #ifndef SUBZERO_SRC_ICEFIXUPS_H | 
| #define SUBZERO_SRC_ICEFIXUPS_H | 
|  | 
| -#include "IceTypes.def" | 
| +#include "IceDefs.h" | 
|  | 
| namespace Ice { | 
|  | 
| -enum FixupKind { | 
| -  // Specify some of the most common relocation types. | 
| -  FK_Abs_4 = 0, | 
| -  FK_PcRel_4 = 1, | 
| +// Each target and container format has a different namespace of relocations. | 
| +// This holds the specific target+container format's relocation number. | 
| +typedef uint32_t FixupKind; | 
|  | 
| -  // Target specific relocation types follow this. | 
| -  FK_FirstTargetSpecific = 1 << 4 | 
| +// Assembler fixups are positions in generated code/data that hold relocation | 
| +// information that needs to be processed before finalizing the code/data. | 
| +struct AssemblerFixup { | 
| +public: | 
| +  intptr_t position() const { return position_; } | 
| +  void set_position(intptr_t Position) { position_ = Position; } | 
| + | 
| +  FixupKind kind() const { return kind_; } | 
| +  void set_kind(FixupKind Kind) { kind_ = Kind; } | 
| + | 
| +  RelocOffsetT offset() const; | 
| +  IceString symbol(const GlobalContext *Ctx) const; | 
| +  void set_value(const Constant *Value) { value_ = Value; } | 
| + | 
| +  void emit(GlobalContext *Ctx) const; | 
| + | 
| +private: | 
| +  intptr_t position_; | 
| +  FixupKind kind_; | 
| +  const Constant *value_; | 
| }; | 
|  | 
| +typedef std::vector<AssemblerFixup> FixupList; | 
| +typedef std::vector<AssemblerFixup *> FixupRefList; | 
| + | 
| } // end of namespace Ice | 
|  | 
| #endif // SUBZERO_SRC_ICEFIXUPS_H | 
|  |