mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-23 02:32:11 +00:00
349c2787cf
PowerPC target. This is the last of the four models, so we now have full TLS support. This is mostly a straightforward extension of the general dynamic model. I had to use an additional Chain operand to tie ADDIS_DTPREL_HA to the register copy following ADDI_TLSLD_L; otherwise everything above the ADDIS_DTPREL_HA appeared dead and was removed. As before, there are new test cases to test the assembly generation, and the relocations output during integrated assembly. The expected code gen sequence can be read in test/CodeGen/PowerPC/tls-ld.ll. There are a couple of things I think can be done more efficiently in the overall TLS code, so there will likely be a clean-up patch forthcoming; but for now I want to be sure the functionality is in place. Bill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170003 91177308-0d34-0410-b5e6-96231b3b80d8
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
//===-- PPCFixupKinds.h - PPC Specific Fixup Entries ------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_PPC_PPCFIXUPKINDS_H
|
|
#define LLVM_PPC_PPCFIXUPKINDS_H
|
|
|
|
#include "llvm/MC/MCFixup.h"
|
|
|
|
namespace llvm {
|
|
namespace PPC {
|
|
enum Fixups {
|
|
// fixup_ppc_br24 - 24-bit PC relative relocation for direct branches like 'b'
|
|
// and 'bl'.
|
|
fixup_ppc_br24 = FirstTargetFixupKind,
|
|
|
|
/// fixup_ppc_brcond14 - 14-bit PC relative relocation for conditional
|
|
/// branches.
|
|
fixup_ppc_brcond14,
|
|
|
|
/// fixup_ppc_lo16 - A 16-bit fixup corresponding to lo16(_foo) for instrs
|
|
/// like 'li'.
|
|
fixup_ppc_lo16,
|
|
|
|
/// fixup_ppc_ha16 - A 16-bit fixup corresponding to ha16(_foo) for instrs
|
|
/// like 'lis'.
|
|
fixup_ppc_ha16,
|
|
|
|
/// fixup_ppc_lo14 - A 14-bit fixup corresponding to lo16(_foo) for instrs
|
|
/// like 'std'.
|
|
fixup_ppc_lo14,
|
|
|
|
/// fixup_ppc_toc - Insert value of TOC base (.TOC.).
|
|
fixup_ppc_toc,
|
|
|
|
/// fixup_ppc_toc16 - A 16-bit signed fixup relative to the TOC base.
|
|
fixup_ppc_toc16,
|
|
|
|
/// fixup_ppc_toc16_ds - A 14-bit signed fixup relative to the TOC base with
|
|
/// implied 2 zero bits
|
|
fixup_ppc_toc16_ds,
|
|
|
|
/// fixup_ppc_tlsreg - Insert thread-pointer register number.
|
|
fixup_ppc_tlsreg,
|
|
|
|
/// fixup_ppc_nofixup - Not a true fixup, but ties a symbol to a call
|
|
/// to __tls_get_addr for the TLS general and local dynamic models.
|
|
fixup_ppc_nofixup,
|
|
|
|
// Marker
|
|
LastTargetFixupKind,
|
|
NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif
|