summary refs log tree commit diff stats
path: root/tinyc/c67-link.c
diff options
context:
space:
mode:
Diffstat (limited to 'tinyc/c67-link.c')
-rw-r--r--tinyc/c67-link.c131
1 files changed, 0 insertions, 131 deletions
diff --git a/tinyc/c67-link.c b/tinyc/c67-link.c
deleted file mode 100644
index de72e442f..000000000
--- a/tinyc/c67-link.c
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifdef TARGET_DEFS_ONLY
-
-#define EM_TCC_TARGET EM_C60
-
-/* relocation type for 32 bit data relocation */
-#define R_DATA_32   R_C60_32
-#define R_DATA_PTR  R_C60_32
-#define R_JMP_SLOT  R_C60_JMP_SLOT
-#define R_GLOB_DAT  R_C60_GLOB_DAT
-#define R_COPY      R_C60_COPY
-#define R_RELATIVE  R_C60_RELATIVE
-
-#define R_NUM       R_C60_NUM
-
-#define ELF_START_ADDR 0x00000400
-#define ELF_PAGE_SIZE  0x1000
-
-#define PCRELATIVE_DLLPLT 0
-#define RELOCATE_DLLPLT 0
-
-#else /* !TARGET_DEFS_ONLY */
-
-#include "tcc.h"
-
-/* Returns 1 for a code relocation, 0 for a data relocation. For unknown
-   relocations, returns -1. */
-int code_reloc (int reloc_type)
-{
-    switch (reloc_type) {
-        case R_C60_32:
-	case R_C60LO16:
-	case R_C60HI16:
-        case R_C60_GOT32:
-        case R_C60_GOTOFF:
-        case R_C60_GOTPC:
-        case R_C60_COPY:
-            return 0;
-
-        case R_C60_PLT32:
-            return 1;
-    }
-
-    tcc_error ("Unknown relocation type: %d", reloc_type);
-    return -1;
-}
-
-/* Returns an enumerator to describe whether and when the relocation needs a
-   GOT and/or PLT entry to be created. See tcc.h for a description of the
-   different values. */
-int gotplt_entry_type (int reloc_type)
-{
-    switch (reloc_type) {
-        case R_C60_32:
-	case R_C60LO16:
-	case R_C60HI16:
-        case R_C60_COPY:
-            return NO_GOTPLT_ENTRY;
-
-        case R_C60_GOTOFF:
-        case R_C60_GOTPC:
-            return BUILD_GOT_ONLY;
-
-        case R_C60_PLT32:
-        case R_C60_GOT32:
-            return ALWAYS_GOTPLT_ENTRY;
-    }
-
-    tcc_error ("Unknown relocation type: %d", reloc_type);
-    return -1;
-}
-
-ST_FUNC unsigned create_plt_entry(TCCState *s1, unsigned got_offset, struct sym_attr *attr)
-{
-    tcc_error("C67 got not implemented");
-    return 0;
-}
-
-/* relocate the PLT: compute addresses and offsets in the PLT now that final
-   address for PLT and GOT are known (see fill_program_header) */
-ST_FUNC void relocate_plt(TCCState *s1)
-{
-    uint8_t *p, *p_end;
-
-    if (!s1->plt)
-      return;
-
-    p = s1->plt->data;
-    p_end = p + s1->plt->data_offset;
-
-    if (p < p_end) {
-        /* XXX: TODO */
-        while (p < p_end) {
-            /* XXX: TODO */
-        }
-   }
-}
-
-void relocate_init(Section *sr) {}
-
-void relocate(TCCState *s1, ElfW_Rel *rel, int type, unsigned char *ptr, addr_t addr, addr_t val)
-{
-    switch(type) {
-        case R_C60_32:
-            *(int *)ptr += val;
-            break;
-        case R_C60LO16:
-            {
-                uint32_t orig;
-
-                /* put the low 16 bits of the absolute address add to what is
-                   already there */
-                orig  =   ((*(int *)(ptr  )) >> 7) & 0xffff;
-                orig |=  (((*(int *)(ptr+4)) >> 7) & 0xffff) << 16;
-
-                /* patch both at once - assumes always in pairs Low - High */
-                *(int *) ptr    = (*(int *) ptr    & (~(0xffff << 7)) ) |
-                                   (((val+orig)      & 0xffff) << 7);
-                *(int *)(ptr+4) = (*(int *)(ptr+4) & (~(0xffff << 7)) ) |
-                                  ((((val+orig)>>16) & 0xffff) << 7);
-            }
-            break;
-        case R_C60HI16:
-            break;
-        default:
-            fprintf(stderr,"FIXME: handle reloc type %x at %x [%p] to %x\n",
-                    type, (unsigned) addr, ptr, (unsigned) val);
-            break;
-    }
-}
-
-#endif /* !TARGET_DEFS_ONLY */