mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
JumpTable support! What this represents is working asm and jit support for
x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -140,6 +140,10 @@ namespace llvm {
|
||||
/// before emitting the constant pool for a function.
|
||||
const char *ConstantPoolSection; // Defaults to "\t.section .rodata\n"
|
||||
|
||||
/// JumpTableSection - This is the section that we SwitchToSection right
|
||||
/// before emitting the jump tables for a function.
|
||||
const char *JumpTableSection; // Defaults to "\t.section .rodata\n"
|
||||
|
||||
/// StaticCtorsSection - This is the directive that is emitted to switch to
|
||||
/// a section to emit the static constructor list.
|
||||
/// Defaults to "\t.section .ctors,\"aw\",@progbits".
|
||||
@@ -231,6 +235,11 @@ namespace llvm {
|
||||
///
|
||||
void EmitConstantPool(MachineConstantPool *MCP);
|
||||
|
||||
/// EmitJumpTableInfo - Print assembly representations of the jump tables
|
||||
/// used by the current function to the current output stream.
|
||||
///
|
||||
void EmitJumpTableInfo(MachineJumpTableInfo *MJTI);
|
||||
|
||||
/// EmitSpecialLLVMGlobal - Check to see if the specified global is a
|
||||
/// special global used by LLVM. If so, emit it and return true, otherwise
|
||||
/// do nothing and return false.
|
||||
@@ -257,6 +266,11 @@ namespace llvm {
|
||||
/// printInlineAsm - This method formats and prints the specified machine
|
||||
/// instruction that is an inline asm.
|
||||
void printInlineAsm(const MachineInstr *MI) const;
|
||||
|
||||
/// printBasicBlockLabel - This method prints the label for the specified
|
||||
/// MachineBasicBlock
|
||||
virtual void printBasicBlockLabel(const MachineBasicBlock *MBB) const;
|
||||
|
||||
private:
|
||||
void EmitXXStructorList(Constant *List);
|
||||
|
||||
|
Reference in New Issue
Block a user