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

Side by Side Diff: src/assembler.h

Issue 1136793002: Handle ARM "ret void" and function alignment with proper padding. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: note moved to cpp Created 5 years, 7 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 | « src/IceUtils.h ('k') | src/assembler_arm32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/assembler.h - Integrated assembler -----------*- C++ -*-===// 1 //===- subzero/src/assembler.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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 template <typename T> T *Allocate() { return Allocator.Allocate<T>(); } 175 template <typename T> T *Allocate() { return Allocator.Allocate<T>(); }
176 176
177 // Align the tail end of the function to the required target alignment. 177 // Align the tail end of the function to the required target alignment.
178 virtual void alignFunction() = 0; 178 virtual void alignFunction() = 0;
179 179
180 // Add nop padding of a particular width to the current bundle. 180 // Add nop padding of a particular width to the current bundle.
181 virtual void padWithNop(intptr_t Padding) = 0; 181 virtual void padWithNop(intptr_t Padding) = 0;
182 182
183 virtual SizeT getBundleAlignLog2Bytes() const = 0; 183 virtual SizeT getBundleAlignLog2Bytes() const = 0;
184 184
185 virtual const char *getNonExecPadDirective() const = 0;
185 virtual llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const = 0; 186 virtual llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const = 0;
186 187
187 // Mark the current text location as the start of a CFG node 188 // Mark the current text location as the start of a CFG node
188 // (represented by NodeNumber). 189 // (represented by NodeNumber).
189 virtual void BindCfgNodeLabel(SizeT NodeNumber) = 0; 190 virtual void BindCfgNodeLabel(SizeT NodeNumber) = 0;
190 191
191 virtual bool fixupIsPCRel(FixupKind Kind) const = 0; 192 virtual bool fixupIsPCRel(FixupKind Kind) const = 0;
192 193
193 // Return a view of all the bytes of code for the current function. 194 // Return a view of all the bytes of code for the current function.
194 llvm::StringRef getBufferView() const; 195 llvm::StringRef getBufferView() const;
(...skipping 28 matching lines...) Expand all
223 // relocation fixups are fully committed (Preliminary=false). 224 // relocation fixups are fully committed (Preliminary=false).
224 bool Preliminary; 225 bool Preliminary;
225 226
226 protected: 227 protected:
227 AssemblerBuffer buffer_; 228 AssemblerBuffer buffer_;
228 }; 229 };
229 230
230 } // end of namespace Ice 231 } // end of namespace Ice
231 232
232 #endif // SUBZERO_SRC_ASSEMBLER_H_ 233 #endif // SUBZERO_SRC_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/IceUtils.h ('k') | src/assembler_arm32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698