Base class for streamers that emit assembly text.
Synopsis
Declared in <llvm/MC/MCAsmStreamer.h>
class MCAsmBaseStreamer
: public MCStreamer
Base Classes
Name |
Description |
Streaming machine code generation interface. |
Member Functions
Name |
Description |
|
Deleted copy assignment. |
|
Add a textual comment. |
Retrieve the current frame info if one is available and it is not yet closed. Otherwise, issue an error and return null. |
|
|
Emit a blank line to a .s file to pretty it up. |
Add a comment showing the encoding of an instruction. |
|
|
Add explicit comment T. T is required to be a valid comment in the output and does not need to be escaped. |
|
Start emitting COFF symbol definition |
|
Emit the absolute difference between two symbols. |
|
Emit the absolute difference between two symbols encoded with ULEB128. |
|
Emit a .addrsig directive starting an address‐significance table. |
|
Add |
|
Emit an assignment of |
|
Functionally identical to EmitBytes. When emitting textual assembly, this method uses .byte directives instead of .ascii or .asciz for readability. |
|
Emit/Specify Mach‐O build version command. |
|
Enable aligned instruction bundling with the given bundle size. |
|
The following instructions are a bundle‐locked group. |
|
Ends a bundle‐locked group. |
|
Emit the bytes in |
|
Emit a .cfi_adjust_cfa_offset directive. |
|
Emit a .cfi_b_key_frame directive. |
|
Emit a .cfi_def_cfa directive. |
|
Emit a .cfi_def_cfa_offset directive. |
|
Emit a .cfi_def_cfa_register directive. |
Emit a .cfi_endproc directive. |
|
|
Emit a .cfi_escape directive with raw DWARF CFI bytes. |
|
Emit a .cfi_gnu_args_size directive. |
|
Emit a .cfi_llvm_def_aspace_cfa directive. |
|
Emit a .cfi_llvm_register_pair directive. |
|
|
|
Emit a .cfi_llvm_vector_offset directive. |
|
Emit a .cfi_llvm_vector_register_mask directive. |
|
Emit a .cfi_llvm_vector_registers directive. |
|
When emitting an object file, create and emit a real label. When emitting textual assembly, this should do nothing to avoid polluting our output. |
|
Emit a .cfi_label directive. |
|
Emit a .cfi_lsda directive. |
|
Emit a .cfi_mte_tagged_frame directive. |
|
Emit a .cfi_negate_ra_state directive. |
|
Emit a .cfi_negate_ra_state_with_pc directive. |
|
Emit a .cfi_offset directive. |
|
Emit a .cfi_personality directive. |
|
Emit a .cfi_register directive. |
|
Emit a .cfi_rel_offset directive. |
|
Emit a .cfi_remember_state directive. |
|
Emit a .cfi_restore directive. |
|
Emit a .cfi_restore_state directive. |
|
Emit a .cfi_return_column directive. |
|
Emit a .cfi_same_value directive. |
|
Select which CFI sections to emit. |
|
Emit a .cfi_signal_frame directive. |
Emit a .cfi_startproc directive. |
|
|
Emit a .cfi_undefined directive. |
|
Emit a .cfi_val_offset directive. |
|
Emit a .cfi_window_save directive. |
|
Emit a call‐graph profile edge. |
|
Emits a COFF image relative relocation. |
|
Emit a COFF .safeseh directive for |
|
Emits the physical number of the section containing the given symbol as assigned during object writing (i.e., this is not a runtime relocation). |
|
Emits the offset of the symbol from the beginning of the section during object writing (i.e., this is not a runtime relocation). |
|
Emits a COFF section relative relocation. |
|
Emits a COFF section index. |
|
Emits the symbol table index of a Symbol into the current section. |
|
Emit the storage class of the symbol. |
|
Emit the type of the symbol. |
|
|
|
This implements the CodeView '.cv_fpo_data' assembler directive. |
|
This implements the CodeView '.cv_filechecksumoffset' assembler directive. |
|
This implements the CodeView '.cv_filechecksums' assembler directive. |
|
Associate a filename and checksum with a CodeView logical file number. |
|
Introduces a function id for use with .cv_loc. |
|
This implements the CodeView '.cv_inline_linetable' assembler directive. |
|
Introduces an inline call site id for use with .cv_loc. Includes extra information for inline line table generation. |
|
This implements the CodeView '.cv_linetable' assembler directive. |
|
This implements the CodeView '.cv_loc' assembler directive. |
|
This implements the CodeView '.cv_stringtable' assembler directive. |
|
Emit nops until the byte alignment |
|
Emit a common symbol. |
|
Emit an assignment of |
|
Emit a Mach‐O build‐version command for the Darwin target variant. |
|
Note in the output the specified region |
|
Emit a raw DWARF line‐address advance from |
|
Specify the "root" file of the compilation, using the ".file 0" extension. |
Associate a filename with a specified logical file number. This implements the DWARF2 '.file 4 "foo.c"' assembler directive. |
|
|
Emit the debug line end entry. |
|
Emit the debug line start label. |
|
This implements the DWARF2 '.loc fileno lineno ...' assembler directive. |
|
This is same as emitDwarfLocDirective, except it has the capability to add inlined_at information. |
|
This implements the '.loc_label Name' directive. |
|
|
|
Copy EH‐related symbol attributes from |
|
Emit an ELF .size directive. |
|
Emit an ELF .symver directive. |
|
Emit added explicit comments. |
|
|
|
|
|
Emit a .gnu_attribute directive. |
|
Emit the "identifiers" directive. This implements the '.ident "version foo"' assembler directive. |
|
Emit the given |
Emit |
|
Emit |
|
Emit |
|
Emit |
|
|
|
|
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers & prints in Hex format for certain modes. |
|
Emit a constant integer in hex, padded to |
|
Emit a Linker Optimization Hint (LOH) directive. |
|
Emit a label for |
Emit a temporary label and record it in the DWARF line table. |
|
|
Emit the given list |
|
Emit a local common (.lcomm) symbol. |
|
Emit |
|
Align up to |
|
Emit the a pseudo probe into the current section. |
|
Print |
Dump |
|
|
Record a relocation described by the .reloc directive. |
Special case of EmitSLEB128Value that avoids the client having to pass in a MCExpr for constant integers. |
|
|
Emit |
|
Emit a .subsection_via_symbols directive. |
|
Add the given |
|
Set the |
Special case of EmitValue that avoids the client having to pass in a MCExpr for MCSymbols. |
|
|
Emit a |
|
Emit a thread local bss (.tbss) symbol. |
|
Emit the target triple into the output. |
Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integers. |
|
|
Emit |
Emit the expression |
|
|
Emit the expression |
|
Emit some number of copies of |
|
Emit some number of copies of |
Emit version directives appropriate for |
|
|
Specify the Mach‐O minimum deployment target version. |
|
Emit an weak reference from |
|
Emit a .seh_stackalloc directive. |
|
Emit a .seh_startepilogue directive. |
|
Emit a .seh_endepilogue directive. |
|
Emit a .seh_endproc directive ending a Windows CFI procedure. |
|
Emit a .seh_endprologue directive. |
|
Emit a .seh_endfunclet directive for .xdata sizing. |
|
Emit a .seh_push2regs directive. |
|
Emit a .seh_pushframe directive. |
|
Emit a .seh_pushreg directive. |
|
Emit a .seh_savereg directive. |
|
Emit a .seh_savexmm directive. |
|
Emit a .seh_setframe directive. |
|
Emit a .seh_splitchained directive. |
|
Emit a .seh_proc directive starting a Windows CFI procedure. |
|
Emit a .seh_unwindv2start directive. |
|
Emit a .seh_unwindversion directive. |
|
Emit a .seh_handler directive. |
|
Emit a .seh_handlerdata directive. |
|
Emit a C_INFO symbol with XCOFF embedded metadata to the .info section. |
|
Emit an XCOFF .except directive which adds information about a trap instruction to the object file exception section |
|
Emits an lcomm directive with XCOFF csect information. |
|
Emit a XCOFF .ref directive which creates R_REF type entry in the relocation table for one or more symbols. |
|
Emit a XCOFF .rename directive which creates a synonym for an illegal or undesirable name. |
|
Emit a symbol's linkage and visibility with a linkage directive for XCOFF. |
|
Emit the zerofill section and an optional symbol. |
Emit NumBytes worth of zeros. This function properly handles data in virtual sections. |
|
|
Marks the end of the symbol definition. |
End |
|
Finish emission of machine code. |
|
|
Streamer specific finalization. |
Return whether the assembler may insert padding automatically. |
|
Return the assembler used by this streamer. |
|
|
Return the assembler, or null if this streamer has none. |
Return the .pdata section associated with |
|
Get the .xdata section used for the given section. |
|
|
Return a raw_ostream that comments can be written to. Unlike AddComment, you are required to terminate comments with if you use this method. |
Return the MC context this streamer is bound to. |
|
Return the fixed size of the current data fragment. |
|
Return the fragment currently being appended to. |
|
Return the current section that the streamer is emitting code to. |
|
Return only the current section, ignoring the subsection index. |
|
Return the Windows EH epilog currently being processed, or null. |
|
Return the default unwind version for new WinCFI frames. |
|
Return the collected DWARF CFI frames. |
|
|
Return the DWARF line‐table symbol for compile unit |
Return the installed LFI rewriter, or null if none. |
|
|
Returns the mnemonic for |
Return the number of DWARF CFI frames collected so far. |
|
Return the number of Windows EH frames collected so far. |
|
Return the previous section that the streamer is emitting code to. |
|
Return the parser's current token location, if available. |
|
Return the attached target streamer, or null if none. |
|
Return whether assembler info may be used during parsing. |
|
Return the collected Windows EH frames. |
|
|
Return true if this asm streamer supports emitting unformatted text to the .s file with EmitRawText. |
Return true if a DWARF CFI frame has been started but not ended. |
|
|
Create the default sections and set the initial one. |
Return true if SEH directives are being recorded for an epilog. |
|
|
Is the integrated assembler required for this streamer to function correctly? |
Return true if this streamer emits an object file. |
|
|
Return true if this streamer supports verbose assembly and if it is enabled. |
Returns true if a WinCFI prolog has been completed (.seh_endprologue) in the current frame. |
|
|
Return true if |
Emit a special value of 0xffffffff if producing 64‐bit debugging info. |
|
|
Restore the current and previous section from the section stack. Calls changeSection as needed. |
Save the current and previous section on the section stack. |
|
|
State management |
Set whether the assembler may insert padding automatically. |
|
Set the default unwind version for new WinCFI frames. |
|
Take ownership of LFI rewriter |
|
Point at the parser's current token location for diagnostics. |
|
Take ownership of target streamer |
|
Set whether assembler info may be used during parsing. |
|
|
|
Similar to switchSection, but does not print the section directive. |
|
|
Associate a filename with a specified logical file number. |
Visit symbols referenced by |
|
|
Visit a symbol used by a streamed expression or directive. |
Protected Member Functions
Name |
Description |
|
Construct an assembly base streamer. |
Append fragment |
|
|
This is called by popSection and switchSection, if the current section changes. |
Returns true if the .cv_loc directive is in the right section. |
|
|
Target‐specific implementation of .cfi_endproc. |
|
Target‐specific implementation of .cfi_startproc. |
|
Implementation of emitRawText, used by assembly streamers. |
|
|
Return the current Windows EH frame, or null if none is active. |
Protected Data Members
Name |
Description |
Assembler used by this streamer for encoding and layout. |
|
Stream that appends comment text into CommentToEmit. |
|
Buffer holding comments pending emission. |
|
Fragment currently being appended to. |
|
Symbol of the current epilog for which we are processing SEH directives. |
|
DWARF CFI frames collected while streaming. |
|
True if this streamer is emitting an object file rather than assembly. |
|
Optional LFI rewriter applied to emitted instructions. |
|
Discarding stream used when an object writer must be created. |
Non-Member Functions
Name |
Description |
Emit LFI bundle‐alignment mode for the current target, if required. |
|
Emit the ELF note section that identifies an LFI object file. |
|
Initialize |
|
Emit the common part of the DWARF 5 range/locations list tables header. |
Created with MrDocs