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

Side by Side Diff: src/IceAssembler.h

Issue 1407273006: Generate block labels in the ARM hybrid assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Ready for review. Created 5 years, 2 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 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 /// Add nop padding of a particular width to the current bundle. 269 /// Add nop padding of a particular width to the current bundle.
270 virtual void padWithNop(intptr_t Padding) = 0; 270 virtual void padWithNop(intptr_t Padding) = 0;
271 271
272 virtual SizeT getBundleAlignLog2Bytes() const = 0; 272 virtual SizeT getBundleAlignLog2Bytes() const = 0;
273 273
274 virtual const char *getAlignDirective() const = 0; 274 virtual const char *getAlignDirective() const = 0;
275 virtual llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const = 0; 275 virtual llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const = 0;
276 276
277 /// Get the label for a CfgNode. 277 /// Get the label for a CfgNode.
278 virtual Label *getCfgNodeLabel(SizeT NodeNumber) = 0; 278 virtual Label *getCfgNodeLabel(SizeT NodeNumber) = 0;
279 /// Mark the current text location as the start of a CFG node (represented by 279 /// Mark the current text location as the start of a CFG node.
280 /// NodeNumber). 280 virtual void bindCfgNodeLabel(const CfgNode *Node) = 0;
281 virtual void bindCfgNodeLabel(SizeT NodeNumber) = 0;
282 281
283 virtual bool fixupIsPCRel(FixupKind Kind) const = 0; 282 virtual bool fixupIsPCRel(FixupKind Kind) const = 0;
284 283
285 // Return a view of all the bytes of code for the current function. 284 // Return a view of all the bytes of code for the current function.
286 llvm::StringRef getBufferView() const; 285 llvm::StringRef getBufferView() const;
287 286
288 /// Emit a fixup at the current location. 287 /// Emit a fixup at the current location.
289 void emitFixup(AssemblerFixup *Fixup) { Buffer.emitFixup(Fixup); } 288 void emitFixup(AssemblerFixup *Fixup) { Buffer.emitFixup(Fixup); }
290 289
291 const FixupRefList &fixups() const { return Buffer.fixups(); } 290 const FixupRefList &fixups() const { return Buffer.fixups(); }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 GlobalContext *Ctx; 341 GlobalContext *Ctx;
343 // Buffer's constructor uses the Allocator, so it needs to appear after it. 342 // Buffer's constructor uses the Allocator, so it needs to appear after it.
344 // TODO(jpp): dependencies on construction order are a nice way of shooting 343 // TODO(jpp): dependencies on construction order are a nice way of shooting
345 // yourself in the foot. Fix this. 344 // yourself in the foot. Fix this.
346 AssemblerBuffer Buffer; 345 AssemblerBuffer Buffer;
347 }; 346 };
348 347
349 } // end of namespace Ice 348 } // end of namespace Ice
350 349
351 #endif // SUBZERO_SRC_ICEASSEMBLER_H_ 350 #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