Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: src/IceAssembler.h

Issue 1669443002: Subzero. Uses fixups to calculate addend to relocations. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/IceAssemblerARM32.h » ('j') | src/IceAssemblerARM32.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceAssembler.h - Integrated assembler --------*- C++ -*-===// 1 //===- subzero/src/IceAssembler.h - Integrated assembler --------*- C++ -*-===//
2 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 // 5 //
6 // Modified by the Subzero authors. 6 // Modified by the Subzero authors.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // The Subzero Code Generator 10 // The Subzero Code Generator
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 virtual bool fixupIsPCRel(FixupKind Kind) const = 0; 286 virtual bool fixupIsPCRel(FixupKind Kind) const = 0;
287 287
288 /// Return a view of all the bytes of code for the current function. 288 /// Return a view of all the bytes of code for the current function.
289 llvm::StringRef getBufferView() const; 289 llvm::StringRef getBufferView() const;
290 290
291 /// Return the value of the given type in the corresponding buffer. 291 /// Return the value of the given type in the corresponding buffer.
292 template <typename T> T load(intptr_t Position) const { 292 template <typename T> T load(intptr_t Position) const {
293 return Buffer.load<T>(Position); 293 return Buffer.load<T>(Position);
294 } 294 }
295 295
296 template <typename T> void store(intptr_t Position, T Value) {
297 Buffer.store(Position, Value);
298 }
299
296 /// Emit a fixup at the current location. 300 /// Emit a fixup at the current location.
297 void emitFixup(AssemblerFixup *Fixup) { Buffer.emitFixup(Fixup); } 301 void emitFixup(AssemblerFixup *Fixup) { Buffer.emitFixup(Fixup); }
298 302
299 const FixupRefList &fixups() const { return Buffer.fixups(); } 303 const FixupRefList &fixups() const { return Buffer.fixups(); }
300 304
301 AssemblerFixup *createFixup(FixupKind Kind, const Constant *Value) { 305 AssemblerFixup *createFixup(FixupKind Kind, const Constant *Value) {
302 return Buffer.createFixup(Kind, Value); 306 return Buffer.createFixup(Kind, Value);
303 } 307 }
304 308
305 AssemblerTextFixup *createTextFixup(const std::string &Text, 309 AssemblerTextFixup *createTextFixup(const std::string &Text,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 protected: 354 protected:
351 // Buffer's constructor uses the Allocator, so it needs to appear after it. 355 // Buffer's constructor uses the Allocator, so it needs to appear after it.
352 // TODO(jpp): dependencies on construction order are a nice way of shooting 356 // TODO(jpp): dependencies on construction order are a nice way of shooting
353 // yourself in the foot. Fix this. 357 // yourself in the foot. Fix this.
354 AssemblerBuffer Buffer; 358 AssemblerBuffer Buffer;
355 }; 359 };
356 360
357 } // end of namespace Ice 361 } // end of namespace Ice
358 362
359 #endif // SUBZERO_SRC_ICEASSEMBLER_H_ 363 #endif // SUBZERO_SRC_ICEASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | src/IceAssemblerARM32.h » ('j') | src/IceAssemblerARM32.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698