summary refs log tree commit diff stats
path: root/linux-user/tilegx
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2021-02-24 19:39:52 +0100
committerThomas Huth <thuth@redhat.com>2021-03-09 11:26:32 +0100
commit2cc1a90166b5baa7ae9d00baf7099254e1353485 (patch)
treeadcf57b0ba701b4f94494bb405d3c22606e15763 /linux-user/tilegx
parent235c15fac50026b32b43431bd37a61a9e03d42da (diff)
downloadfocaccia-qemu-2cc1a90166b5baa7ae9d00baf7099254e1353485.tar.gz
focaccia-qemu-2cc1a90166b5baa7ae9d00baf7099254e1353485.zip
Remove deprecated target tilegx
TILE-Gx was only implemented in linux-user mode, but support for this CPU
was removed from the upstream Linux kernel in 2018, and it has also been
dropped from glibc, so there is no new Linux development taking place with
this architecture. For running the old binaries, users can simply use older
versions of QEMU.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210224183952.80463-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'linux-user/tilegx')
-rw-r--r--linux-user/tilegx/cpu_loop.c287
-rw-r--r--linux-user/tilegx/signal.c178
-rw-r--r--linux-user/tilegx/sockbits.h1
-rw-r--r--linux-user/tilegx/syscall_nr.h327
-rw-r--r--linux-user/tilegx/target_cpu.h44
-rw-r--r--linux-user/tilegx/target_elf.h14
-rw-r--r--linux-user/tilegx/target_fcntl.h11
-rw-r--r--linux-user/tilegx/target_signal.h23
-rw-r--r--linux-user/tilegx/target_structs.h46
-rw-r--r--linux-user/tilegx/target_syscall.h44
-rw-r--r--linux-user/tilegx/termbits.h1
11 files changed, 0 insertions, 976 deletions
diff --git a/linux-user/tilegx/cpu_loop.c b/linux-user/tilegx/cpu_loop.c
deleted file mode 100644
index 490a8f38e5..0000000000
--- a/linux-user/tilegx/cpu_loop.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- *  qemu user cpu loop
- *
- *  Copyright (c) 2003-2008 Fabrice Bellard
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "qemu/osdep.h"
-#include "qemu-common.h"
-#include "qemu.h"
-#include "cpu_loop-common.h"
-
-static void gen_sigill_reg(CPUTLGState *env)
-{
-    target_siginfo_t info;
-
-    info.si_signo = TARGET_SIGILL;
-    info.si_errno = 0;
-    info.si_code = TARGET_ILL_PRVREG;
-    info._sifields._sigfault._addr = env->pc;
-    queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
-}
-
-static void do_signal(CPUTLGState *env, int signo, int sigcode)
-{
-    target_siginfo_t info;
-
-    info.si_signo = signo;
-    info.si_errno = 0;
-    info._sifields._sigfault._addr = env->pc;
-
-    if (signo == TARGET_SIGSEGV) {
-        /* The passed in sigcode is a dummy; check for a page mapping
-           and pass either MAPERR or ACCERR.  */
-        target_ulong addr = env->excaddr;
-        info._sifields._sigfault._addr = addr;
-        if (page_check_range(addr, 1, PAGE_VALID) < 0) {
-            sigcode = TARGET_SEGV_MAPERR;
-        } else {
-            sigcode = TARGET_SEGV_ACCERR;
-        }
-    }
-    info.si_code = sigcode;
-
-    queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
-}
-
-static void gen_sigsegv_maperr(CPUTLGState *env, target_ulong addr)
-{
-    env->excaddr = addr;
-    do_signal(env, TARGET_SIGSEGV, 0);
-}
-
-static void set_regval(CPUTLGState *env, uint8_t reg, uint64_t val)
-{
-    if (unlikely(reg >= TILEGX_R_COUNT)) {
-        switch (reg) {
-        case TILEGX_R_SN:
-        case TILEGX_R_ZERO:
-            return;
-        case TILEGX_R_IDN0:
-        case TILEGX_R_IDN1:
-        case TILEGX_R_UDN0:
-        case TILEGX_R_UDN1:
-        case TILEGX_R_UDN2:
-        case TILEGX_R_UDN3:
-            gen_sigill_reg(env);
-            return;
-        default:
-            g_assert_not_reached();
-        }
-    }
-    env->regs[reg] = val;
-}
-
-/*
- * Compare the 8-byte contents of the CmpValue SPR with the 8-byte value in
- * memory at the address held in the first source register. If the values are
- * not equal, then no memory operation is performed. If the values are equal,
- * the 8-byte quantity from the second source register is written into memory
- * at the address held in the first source register. In either case, the result
- * of the instruction is the value read from memory. The compare and write to
- * memory are atomic and thus can be used for synchronization purposes. This
- * instruction only operates for addresses aligned to a 8-byte boundary.
- * Unaligned memory access causes an Unaligned Data Reference interrupt.
- *
- * Functional Description (64-bit)
- *       uint64_t memVal = memoryReadDoubleWord (rf[SrcA]);
- *       rf[Dest] = memVal;
- *       if (memVal == SPR[CmpValueSPR])
- *           memoryWriteDoubleWord (rf[SrcA], rf[SrcB]);
- *
- * Functional Description (32-bit)
- *       uint64_t memVal = signExtend32 (memoryReadWord (rf[SrcA]));
- *       rf[Dest] = memVal;
- *       if (memVal == signExtend32 (SPR[CmpValueSPR]))
- *           memoryWriteWord (rf[SrcA], rf[SrcB]);
- *
- *
- * This function also processes exch and exch4 which need not process SPR.
- */
-static void do_exch(CPUTLGState *env, bool quad, bool cmp)
-{
-    target_ulong addr;
-    target_long val, sprval;
-
-    start_exclusive();
-
-    addr = env->atomic_srca;
-    if (quad ? get_user_s64(val, addr) : get_user_s32(val, addr)) {
-        goto sigsegv_maperr;
-    }
-
-    if (cmp) {
-        if (quad) {
-            sprval = env->spregs[TILEGX_SPR_CMPEXCH];
-        } else {
-            sprval = sextract64(env->spregs[TILEGX_SPR_CMPEXCH], 0, 32);
-        }
-    }
-
-    if (!cmp || val == sprval) {
-        target_long valb = env->atomic_srcb;
-        if (quad ? put_user_u64(valb, addr) : put_user_u32(valb, addr)) {
-            goto sigsegv_maperr;
-        }
-    }
-
-    set_regval(env, env->atomic_dstr, val);
-    end_exclusive();
-    return;
-
- sigsegv_maperr:
-    end_exclusive();
-    gen_sigsegv_maperr(env, addr);
-}
-
-static void do_fetch(CPUTLGState *env, int trapnr, bool quad)
-{
-    int8_t write = 1;
-    target_ulong addr;
-    target_long val, valb;
-
-    start_exclusive();
-
-    addr = env->atomic_srca;
-    valb = env->atomic_srcb;
-    if (quad ? get_user_s64(val, addr) : get_user_s32(val, addr)) {
-        goto sigsegv_maperr;
-    }
-
-    switch (trapnr) {
-    case TILEGX_EXCP_OPCODE_FETCHADD:
-    case TILEGX_EXCP_OPCODE_FETCHADD4:
-        valb += val;
-        break;
-    case TILEGX_EXCP_OPCODE_FETCHADDGEZ:
-        valb += val;
-        if (valb < 0) {
-            write = 0;
-        }
-        break;
-    case TILEGX_EXCP_OPCODE_FETCHADDGEZ4:
-        valb += val;
-        if ((int32_t)valb < 0) {
-            write = 0;
-        }
-        break;
-    case TILEGX_EXCP_OPCODE_FETCHAND:
-    case TILEGX_EXCP_OPCODE_FETCHAND4:
-        valb &= val;
-        break;
-    case TILEGX_EXCP_OPCODE_FETCHOR:
-    case TILEGX_EXCP_OPCODE_FETCHOR4:
-        valb |= val;
-        break;
-    default:
-        g_assert_not_reached();
-    }
-
-    if (write) {
-        if (quad ? put_user_u64(valb, addr) : put_user_u32(valb, addr)) {
-            goto sigsegv_maperr;
-        }
-    }
-
-    set_regval(env, env->atomic_dstr, val);
-    end_exclusive();
-    return;
-
- sigsegv_maperr:
-    end_exclusive();
-    gen_sigsegv_maperr(env, addr);
-}
-
-void cpu_loop(CPUTLGState *env)
-{
-    CPUState *cs = env_cpu(env);
-    int trapnr;
-
-    while (1) {
-        cpu_exec_start(cs);
-        trapnr = cpu_exec(cs);
-        cpu_exec_end(cs);
-        process_queued_cpu_work(cs);
-
-        switch (trapnr) {
-        case TILEGX_EXCP_SYSCALL:
-        {
-            abi_ulong ret = do_syscall(env, env->regs[TILEGX_R_NR],
-                                       env->regs[0], env->regs[1],
-                                       env->regs[2], env->regs[3],
-                                       env->regs[4], env->regs[5],
-                                       env->regs[6], env->regs[7]);
-            if (ret == -TARGET_ERESTARTSYS) {
-                env->pc -= 8;
-            } else if (ret != -TARGET_QEMU_ESIGRETURN) {
-                env->regs[TILEGX_R_RE] = ret;
-                env->regs[TILEGX_R_ERR] = TILEGX_IS_ERRNO(ret) ? -ret : 0;
-            }
-            break;
-        }
-        case TILEGX_EXCP_OPCODE_EXCH:
-            do_exch(env, true, false);
-            break;
-        case TILEGX_EXCP_OPCODE_EXCH4:
-            do_exch(env, false, false);
-            break;
-        case TILEGX_EXCP_OPCODE_CMPEXCH:
-            do_exch(env, true, true);
-            break;
-        case TILEGX_EXCP_OPCODE_CMPEXCH4:
-            do_exch(env, false, true);
-            break;
-        case TILEGX_EXCP_OPCODE_FETCHADD:
-        case TILEGX_EXCP_OPCODE_FETCHADDGEZ:
-        case TILEGX_EXCP_OPCODE_FETCHAND:
-        case TILEGX_EXCP_OPCODE_FETCHOR:
-            do_fetch(env, trapnr, true);
-            break;
-        case TILEGX_EXCP_OPCODE_FETCHADD4:
-        case TILEGX_EXCP_OPCODE_FETCHADDGEZ4:
-        case TILEGX_EXCP_OPCODE_FETCHAND4:
-        case TILEGX_EXCP_OPCODE_FETCHOR4:
-            do_fetch(env, trapnr, false);
-            break;
-        case TILEGX_EXCP_SIGNAL:
-            do_signal(env, env->signo, env->sigcode);
-            break;
-        case TILEGX_EXCP_REG_IDN_ACCESS:
-        case TILEGX_EXCP_REG_UDN_ACCESS:
-            gen_sigill_reg(env);
-            break;
-        case EXCP_ATOMIC:
-            cpu_exec_step_atomic(cs);
-            break;
-        default:
-            fprintf(stderr, "trapnr is %d[0x%x].\n", trapnr, trapnr);
-            g_assert_not_reached();
-        }
-        process_pending_signals(env);
-    }
-}
-
-void target_cpu_copy_regs(CPUArchState *env, struct target_pt_regs *regs)
-{
-    int i;
-    for (i = 0; i < TILEGX_R_COUNT; i++) {
-        env->regs[i] = regs->regs[i];
-    }
-    for (i = 0; i < TILEGX_SPR_COUNT; i++) {
-        env->spregs[i] = 0;
-    }
-    env->pc = regs->pc;
-}
diff --git a/linux-user/tilegx/signal.c b/linux-user/tilegx/signal.c
deleted file mode 100644
index c5a1c7161d..0000000000
--- a/linux-user/tilegx/signal.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- *  Emulation of Linux signals
- *
- *  Copyright (c) 2003 Fabrice Bellard
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-#include "qemu/osdep.h"
-#include "qemu.h"
-#include "signal-common.h"
-#include "linux-user/trace.h"
-
-struct target_sigcontext {
-    union {
-        /* General-purpose registers.  */
-        abi_ulong gregs[56];
-        struct {
-            abi_ulong __gregs[53];
-            abi_ulong tp;        /* Aliases gregs[TREG_TP].  */
-            abi_ulong sp;        /* Aliases gregs[TREG_SP].  */
-            abi_ulong lr;        /* Aliases gregs[TREG_LR].  */
-        };
-    };
-    abi_ulong pc;        /* Program counter.  */
-    abi_ulong ics;       /* In Interrupt Critical Section?  */
-    abi_ulong faultnum;  /* Fault number.  */
-    abi_ulong pad[5];
-};
-
-struct target_ucontext {
-    abi_ulong tuc_flags;
-    abi_ulong tuc_link;
-    target_stack_t tuc_stack;
-    struct target_sigcontext tuc_mcontext;
-    target_sigset_t tuc_sigmask;   /* mask last for extensibility */
-};
-
-struct target_rt_sigframe {
-    unsigned char save_area[16]; /* caller save area */
-    struct target_siginfo info;
-    struct target_ucontext uc;
-    abi_ulong retcode[2];
-};
-
-#define INSN_MOVELI_R10_139  0x00045fe551483000ULL /* { moveli r10, 139 } */
-#define INSN_SWINT1          0x286b180051485000ULL /* { swint1 } */
-
-
-static void setup_sigcontext(struct target_sigcontext *sc,
-                             CPUArchState *env, int signo)
-{
-    int i;
-
-    for (i = 0; i < TILEGX_R_COUNT; ++i) {
-        __put_user(env->regs[i], &sc->gregs[i]);
-    }
-
-    __put_user(env->pc, &sc->pc);
-    __put_user(0, &sc->ics);
-    __put_user(signo, &sc->faultnum);
-}
-
-static void restore_sigcontext(CPUTLGState *env, struct target_sigcontext *sc)
-{
-    int i;
-
-    for (i = 0; i < TILEGX_R_COUNT; ++i) {
-        __get_user(env->regs[i], &sc->gregs[i]);
-    }
-
-    __get_user(env->pc, &sc->pc);
-}
-
-static abi_ulong get_sigframe(struct target_sigaction *ka, CPUArchState *env,
-                              size_t frame_size)
-{
-    unsigned long sp = get_sp_from_cpustate(env);
-
-    if (on_sig_stack(sp) && !likely(on_sig_stack(sp - frame_size))) {
-        return -1UL;
-    }
-
-    sp = target_sigsp(sp, ka) - frame_size;
-    sp &= -16UL;
-    return sp;
-}
-
-void setup_rt_frame(int sig, struct target_sigaction *ka,
-                    target_siginfo_t *info,
-                    target_sigset_t *set, CPUArchState *env)
-{
-    abi_ulong frame_addr;
-    struct target_rt_sigframe *frame;
-    unsigned long restorer;
-
-    frame_addr = get_sigframe(ka, env, sizeof(*frame));
-    trace_user_setup_rt_frame(env, frame_addr);
-    if (!lock_user_struct(VERIFY_WRITE, frame, frame_addr, 0)) {
-        goto give_sigsegv;
-    }
-
-    /* Always write at least the signal number for the stack backtracer. */
-    if (ka->sa_flags & TARGET_SA_SIGINFO) {
-        /* At sigreturn time, restore the callee-save registers too. */
-        tswap_siginfo(&frame->info, info);
-        /* regs->flags |= PT_FLAGS_RESTORE_REGS; FIXME: we can skip it? */
-    } else {
-        __put_user(info->si_signo, &frame->info.si_signo);
-    }
-
-    /* Create the ucontext.  */
-    __put_user(0, &frame->uc.tuc_flags);
-    __put_user(0, &frame->uc.tuc_link);
-    target_save_altstack(&frame->uc.tuc_stack, env);
-    setup_sigcontext(&frame->uc.tuc_mcontext, env, info->si_signo);
-
-    if (ka->sa_flags & TARGET_SA_RESTORER) {
-        restorer = (unsigned long) ka->sa_restorer;
-    } else {
-        __put_user(INSN_MOVELI_R10_139, &frame->retcode[0]);
-        __put_user(INSN_SWINT1, &frame->retcode[1]);
-        restorer = frame_addr + offsetof(struct target_rt_sigframe, retcode);
-    }
-    env->pc = (unsigned long) ka->_sa_handler;
-    env->regs[TILEGX_R_SP] = (unsigned long) frame;
-    env->regs[TILEGX_R_LR] = restorer;
-    env->regs[0] = (unsigned long) sig;
-    env->regs[1] = (unsigned long) &frame->info;
-    env->regs[2] = (unsigned long) &frame->uc;
-    /* regs->flags |= PT_FLAGS_CALLER_SAVES; FIXME: we can skip it? */
-
-    unlock_user_struct(frame, frame_addr, 1);
-    return;
-
-give_sigsegv:
-    force_sigsegv(sig);
-}
-
-long do_rt_sigreturn(CPUTLGState *env)
-{
-    abi_ulong frame_addr = env->regs[TILEGX_R_SP];
-    struct target_rt_sigframe *frame;
-    sigset_t set;
-
-    trace_user_do_rt_sigreturn(env, frame_addr);
-    if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) {
-        goto badframe;
-    }
-    target_to_host_sigset(&set, &frame->uc.tuc_sigmask);
-    set_sigmask(&set);
-
-    restore_sigcontext(env, &frame->uc.tuc_mcontext);
-    if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe,
-                                             uc.tuc_stack),
-                       0, env->regs[TILEGX_R_SP]) == -EFAULT) {
-        goto badframe;
-    }
-
-    unlock_user_struct(frame, frame_addr, 0);
-    return -TARGET_QEMU_ESIGRETURN;
-
-
- badframe:
-    unlock_user_struct(frame, frame_addr, 0);
-    force_sig(TARGET_SIGSEGV);
-    return -TARGET_QEMU_ESIGRETURN;
-}
diff --git a/linux-user/tilegx/sockbits.h b/linux-user/tilegx/sockbits.h
deleted file mode 100644
index 0e4c8f012d..0000000000
--- a/linux-user/tilegx/sockbits.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../generic/sockbits.h"
diff --git a/linux-user/tilegx/syscall_nr.h b/linux-user/tilegx/syscall_nr.h
deleted file mode 100644
index c104b94230..0000000000
--- a/linux-user/tilegx/syscall_nr.h
+++ /dev/null
@@ -1,327 +0,0 @@
-#ifndef TILEGX_SYSCALL_NR_H
-#define TILEGX_SYSCALL_NR_H
-
-/*
- * Copy from linux kernel asm-generic/unistd.h, which tilegx uses.
- */
-#define TARGET_NR_io_setup                      0
-#define TARGET_NR_io_destroy                    1
-#define TARGET_NR_io_submit                     2
-#define TARGET_NR_io_cancel                     3
-#define TARGET_NR_io_getevents                  4
-#define TARGET_NR_setxattr                      5
-#define TARGET_NR_lsetxattr                     6
-#define TARGET_NR_fsetxattr                     7
-#define TARGET_NR_getxattr                      8
-#define TARGET_NR_lgetxattr                     9
-#define TARGET_NR_fgetxattr                     10
-#define TARGET_NR_listxattr                     11
-#define TARGET_NR_llistxattr                    12
-#define TARGET_NR_flistxattr                    13
-#define TARGET_NR_removexattr                   14
-#define TARGET_NR_lremovexattr                  15
-#define TARGET_NR_fremovexattr                  16
-#define TARGET_NR_getcwd                        17
-#define TARGET_NR_lookup_dcookie                18
-#define TARGET_NR_eventfd2                      19
-#define TARGET_NR_epoll_create1                 20
-#define TARGET_NR_epoll_ctl                     21
-#define TARGET_NR_epoll_pwait                   22
-#define TARGET_NR_dup                           23
-#define TARGET_NR_dup3                          24
-#define TARGET_NR_fcntl                         25
-#define TARGET_NR_inotify_init1                 26
-#define TARGET_NR_inotify_add_watch             27
-#define TARGET_NR_inotify_rm_watch              28
-#define TARGET_NR_ioctl                         29
-#define TARGET_NR_ioprio_set                    30
-#define TARGET_NR_ioprio_get                    31
-#define TARGET_NR_flock                         32
-#define TARGET_NR_mknodat                       33
-#define TARGET_NR_mkdirat                       34
-#define TARGET_NR_unlinkat                      35
-#define TARGET_NR_symlinkat                     36
-#define TARGET_NR_linkat                        37
-#define TARGET_NR_renameat                      38
-#define TARGET_NR_umount2                       39
-#define TARGET_NR_mount                         40
-#define TARGET_NR_pivot_root                    41
-#define TARGET_NR_nfsservctl                    42
-#define TARGET_NR_statfs                        43
-#define TARGET_NR_fstatfs                       44
-#define TARGET_NR_truncate                      45
-#define TARGET_NR_ftruncate                     46
-#define TARGET_NR_fallocate                     47
-#define TARGET_NR_faccessat                     48
-#define TARGET_NR_chdir                         49
-#define TARGET_NR_fchdir                        50
-#define TARGET_NR_chroot                        51
-#define TARGET_NR_fchmod                        52
-#define TARGET_NR_fchmodat                      53
-#define TARGET_NR_fchownat                      54
-#define TARGET_NR_fchown                        55
-#define TARGET_NR_openat                        56
-#define TARGET_NR_close                         57
-#define TARGET_NR_vhangup                       58
-#define TARGET_NR_pipe2                         59
-#define TARGET_NR_quotactl                      60
-#define TARGET_NR_getdents64                    61
-#define TARGET_NR_lseek                         62
-#define TARGET_NR_read                          63
-#define TARGET_NR_write                         64
-#define TARGET_NR_readv                         65
-#define TARGET_NR_writev                        66
-#define TARGET_NR_pread64                       67
-#define TARGET_NR_pwrite64                      68
-#define TARGET_NR_preadv                        69
-#define TARGET_NR_pwritev                       70
-#define TARGET_NR_sendfile                      71
-#define TARGET_NR_pselect6                      72
-#define TARGET_NR_ppoll                         73
-#define TARGET_NR_signalfd4                     74
-#define TARGET_NR_vmsplice                      75
-#define TARGET_NR_splice                        76
-#define TARGET_NR_tee                           77
-#define TARGET_NR_readlinkat                    78
-#define TARGET_NR_fstatat64                     79 /* let syscall.c known */
-#define TARGET_NR_fstat                         80
-#define TARGET_NR_sync                          81
-#define TARGET_NR_fsync                         82
-#define TARGET_NR_fdatasync                     83
-#define TARGET_NR_sync_file_range               84 /* For tilegx, no range2 */
-#define TARGET_NR_timerfd_create                85
-#define TARGET_NR_timerfd_settime               86
-#define TARGET_NR_timerfd_gettime               87
-#define TARGET_NR_utimensat                     88
-#define TARGET_NR_acct                          89
-#define TARGET_NR_capget                        90
-#define TARGET_NR_capset                        91
-#define TARGET_NR_personality                   92
-#define TARGET_NR_exit                          93
-#define TARGET_NR_exit_group                    94
-#define TARGET_NR_waitid                        95
-#define TARGET_NR_set_tid_address               96
-#define TARGET_NR_unshare                       97
-#define TARGET_NR_futex                         98
-#define TARGET_NR_set_robust_list               99
-#define TARGET_NR_get_robust_list               100
-#define TARGET_NR_nanosleep                     101
-#define TARGET_NR_getitimer                     102
-#define TARGET_NR_setitimer                     103
-#define TARGET_NR_kexec_load                    104
-#define TARGET_NR_init_module                   105
-#define TARGET_NR_delete_module                 106
-#define TARGET_NR_timer_create                  107
-#define TARGET_NR_timer_gettime                 108
-#define TARGET_NR_timer_getoverrun              109
-#define TARGET_NR_timer_settime                 110
-#define TARGET_NR_timer_delete                  111
-#define TARGET_NR_clock_settime                 112
-#define TARGET_NR_clock_gettime                 113
-#define TARGET_NR_clock_getres                  114
-#define TARGET_NR_clock_nanosleep               115
-#define TARGET_NR_syslog                        116
-#define TARGET_NR_ptrace                        117
-#define TARGET_NR_sched_setparam                118
-#define TARGET_NR_sched_setscheduler            119
-#define TARGET_NR_sched_getscheduler            120
-#define TARGET_NR_sched_getparam                121
-#define TARGET_NR_sched_setaffinity             122
-#define TARGET_NR_sched_getaffinity             123
-#define TARGET_NR_sched_yield                   124
-#define TARGET_NR_sched_get_priority_max        125
-#define TARGET_NR_sched_get_priority_min        126
-#define TARGET_NR_sched_rr_get_interval         127
-#define TARGET_NR_restart_syscall               128
-#define TARGET_NR_kill                          129
-#define TARGET_NR_tkill                         130
-#define TARGET_NR_tgkill                        131
-#define TARGET_NR_sigaltstack                   132
-#define TARGET_NR_rt_sigsuspend                 133
-#define TARGET_NR_rt_sigaction                  134
-#define TARGET_NR_rt_sigprocmask                135
-#define TARGET_NR_rt_sigpending                 136
-#define TARGET_NR_rt_sigtimedwait               137
-#define TARGET_NR_rt_sigqueueinfo               138
-#define TARGET_NR_rt_sigreturn                  139
-#define TARGET_NR_setpriority                   140
-#define TARGET_NR_getpriority                   141
-#define TARGET_NR_reboot                        142
-#define TARGET_NR_setregid                      143
-#define TARGET_NR_setgid                        144
-#define TARGET_NR_setreuid                      145
-#define TARGET_NR_setuid                        146
-#define TARGET_NR_setresuid                     147
-#define TARGET_NR_getresuid                     148
-#define TARGET_NR_setresgid                     149
-#define TARGET_NR_getresgid                     150
-#define TARGET_NR_setfsuid                      151
-#define TARGET_NR_setfsgid                      152
-#define TARGET_NR_times                         153
-#define TARGET_NR_setpgid                       154
-#define TARGET_NR_getpgid                       155
-#define TARGET_NR_getsid                        156
-#define TARGET_NR_setsid                        157
-#define TARGET_NR_getgroups                     158
-#define TARGET_NR_setgroups                     159
-#define TARGET_NR_uname                         160
-#define TARGET_NR_sethostname                   161
-#define TARGET_NR_setdomainname                 162
-#define TARGET_NR_getrlimit                     163
-#define TARGET_NR_setrlimit                     164
-#define TARGET_NR_getrusage                     165
-#define TARGET_NR_umask                         166
-#define TARGET_NR_prctl                         167
-#define TARGET_NR_getcpu                        168
-#define TARGET_NR_gettimeofday                  169
-#define TARGET_NR_settimeofday                  170
-#define TARGET_NR_adjtimex                      171
-#define TARGET_NR_getpid                        172
-#define TARGET_NR_getppid                       173
-#define TARGET_NR_getuid                        174
-#define TARGET_NR_geteuid                       175
-#define TARGET_NR_getgid                        176
-#define TARGET_NR_getegid                       177
-#define TARGET_NR_gettid                        178
-#define TARGET_NR_sysinfo                       179
-#define TARGET_NR_mq_open                       180
-#define TARGET_NR_mq_unlink                     181
-#define TARGET_NR_mq_timedsend                  182
-#define TARGET_NR_mq_timedreceive               183
-#define TARGET_NR_mq_notify                     184
-#define TARGET_NR_mq_getsetattr                 185
-#define TARGET_NR_msgget                        186
-#define TARGET_NR_msgctl                        187
-#define TARGET_NR_msgrcv                        188
-#define TARGET_NR_msgsnd                        189
-#define TARGET_NR_semget                        190
-#define TARGET_NR_semctl                        191
-#define TARGET_NR_semtimedop                    192
-#define TARGET_NR_semop                         193
-#define TARGET_NR_shmget                        194
-#define TARGET_NR_shmctl                        195
-#define TARGET_NR_shmat                         196
-#define TARGET_NR_shmdt                         197
-#define TARGET_NR_socket                        198
-#define TARGET_NR_socketpair                    199
-#define TARGET_NR_bind                          200
-#define TARGET_NR_listen                        201
-#define TARGET_NR_accept                        202
-#define TARGET_NR_connect                       203
-#define TARGET_NR_getsockname                   204
-#define TARGET_NR_getpeername                   205
-#define TARGET_NR_sendto                        206
-#define TARGET_NR_recvfrom                      207
-#define TARGET_NR_setsockopt                    208
-#define TARGET_NR_getsockopt                    209
-#define TARGET_NR_shutdown                      210
-#define TARGET_NR_sendmsg                       211
-#define TARGET_NR_recvmsg                       212
-#define TARGET_NR_readahead                     213
-#define TARGET_NR_brk                           214
-#define TARGET_NR_munmap                        215
-#define TARGET_NR_mremap                        216
-#define TARGET_NR_add_key                       217
-#define TARGET_NR_request_key                   218
-#define TARGET_NR_keyctl                        219
-#define TARGET_NR_clone                         220
-#define TARGET_NR_execve                        221
-#define TARGET_NR_mmap                          222
-#define TARGET_NR_fadvise64                     223
-#define TARGET_NR_swapon                        224
-#define TARGET_NR_swapoff                       225
-#define TARGET_NR_mprotect                      226
-#define TARGET_NR_msync                         227
-#define TARGET_NR_mlock                         228
-#define TARGET_NR_munlock                       229
-#define TARGET_NR_mlockall                      230
-#define TARGET_NR_munlockall                    231
-#define TARGET_NR_mincore                       232
-#define TARGET_NR_madvise                       233
-#define TARGET_NR_remap_file_pages              234
-#define TARGET_NR_mbind                         235
-#define TARGET_NR_get_mempolicy                 236
-#define TARGET_NR_set_mempolicy                 237
-#define TARGET_NR_migrate_pages                 238
-#define TARGET_NR_move_pages                    239
-#define TARGET_NR_rt_tgsigqueueinfo             240
-#define TARGET_NR_perf_event_open               241
-#define TARGET_NR_accept4                       242
-#define TARGET_NR_recvmmsg                      243
-
-#define TARGET_NR_arch_specific_syscall         244
-#define TARGET_NR_cacheflush                    245  /* tilegx own syscall */
-
-#define TARGET_NR_wait4                         260
-#define TARGET_NR_prlimit64                     261
-#define TARGET_NR_fanotify_init                 262
-#define TARGET_NR_fanotify_mark                 263
-#define TARGET_NR_name_to_handle_at             264
-#define TARGET_NR_open_by_handle_at             265
-#define TARGET_NR_clock_adjtime                 266
-#define TARGET_NR_syncfs                        267
-#define TARGET_NR_setns                         268
-#define TARGET_NR_sendmmsg                      269
-#define TARGET_NR_process_vm_readv              270
-#define TARGET_NR_process_vm_writev             271
-#define TARGET_NR_kcmp                          272
-#define TARGET_NR_finit_module                  273
-#define TARGET_NR_sched_setattr                 274
-#define TARGET_NR_sched_getattr                 275
-#define TARGET_NR_renameat2                     276
-#define TARGET_NR_seccomp                       277
-#define TARGET_NR_getrandom                     278
-#define TARGET_NR_memfd_create                  279
-#define TARGET_NR_bpf                           280
-#define TARGET_NR_execveat                      281
-#define TARGET_NR_userfaultfd                   282
-#define TARGET_NR_membarrier                    283
-#define TARGET_NR_mlock2                        284
-#define TARGET_NR_copy_file_range               285
-
-#define TARGET_NR_open                          1024
-#define TARGET_NR_link                          1025
-#define TARGET_NR_unlink                        1026
-#define TARGET_NR_mknod                         1027
-#define TARGET_NR_chmod                         1028
-#define TARGET_NR_chown                         1029
-#define TARGET_NR_mkdir                         1030
-#define TARGET_NR_rmdir                         1031
-#define TARGET_NR_lchown                        1032
-#define TARGET_NR_access                        1033
-#define TARGET_NR_rename                        1034
-#define TARGET_NR_readlink                      1035
-#define TARGET_NR_symlink                       1036
-#define TARGET_NR_utimes                        1037
-#define TARGET_NR_stat64                        1038 /* let syscall.c known */
-#define TARGET_NR_lstat                         1039
-
-#define TARGET_NR_pipe                          1040
-#define TARGET_NR_dup2                          1041
-#define TARGET_NR_epoll_create                  1042
-#define TARGET_NR_inotify_init                  1043
-#define TARGET_NR_eventfd                       1044
-#define TARGET_NR_signalfd                      1045
-
-#define TARGET_NR_alarm                         1059
-#define TARGET_NR_getpgrp                       1060
-#define TARGET_NR_pause                         1061
-#define TARGET_NR_time                          1062
-#define TARGET_NR_utime                         1063
-#define TARGET_NR_creat                         1064
-#define TARGET_NR_getdents                      1065
-#define TARGET_NR_futimesat                     1066
-#define TARGET_NR_poll                          1068
-#define TARGET_NR_epoll_wait                    1069
-#define TARGET_NR_ustat                         1070
-#define TARGET_NR_vfork                         1071
-#define TARGET_NR_oldwait4                      1072
-#define TARGET_NR_recv                          1073
-#define TARGET_NR_send                          1074
-#define TARGET_NR_bdflush                       1075
-#define TARGET_NR_umount                        1076
-#define TARGET_NR_uselib                        1077
-#define TARGET_NR__sysctl                       1078
-#define TARGET_NR_fork                          1079
-
-#endif
diff --git a/linux-user/tilegx/target_cpu.h b/linux-user/tilegx/target_cpu.h
deleted file mode 100644
index 5fa9e2a9a4..0000000000
--- a/linux-user/tilegx/target_cpu.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * TILE-Gx specific CPU ABI and functions for linux-user
- *
- * Copyright (c) 2015 Chen Gang
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
-#ifndef TILEGX_TARGET_CPU_H
-#define TILEGX_TARGET_CPU_H
-
-static inline void cpu_clone_regs_child(CPUTLGState *env, target_ulong newsp,
-                                        unsigned flags)
-{
-    if (newsp) {
-        env->regs[TILEGX_R_SP] = newsp;
-    }
-    env->regs[TILEGX_R_RE] = 0;
-}
-
-static inline void cpu_clone_regs_parent(CPUTLGState *env, unsigned flags)
-{
-}
-
-static inline void cpu_set_tls(CPUTLGState *env, target_ulong newtls)
-{
-    env->regs[TILEGX_R_TP] = newtls;
-}
-
-static inline abi_ulong get_sp_from_cpustate(CPUTLGState *state)
-{
-    return state->regs[TILEGX_R_SP];
-}
-#endif
diff --git a/linux-user/tilegx/target_elf.h b/linux-user/tilegx/target_elf.h
deleted file mode 100644
index 7197bb0005..0000000000
--- a/linux-user/tilegx/target_elf.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation, or (at your option) any
- * later version. See the COPYING file in the top-level directory.
- */
-
-#ifndef TILEGX_TARGET_ELF_H
-#define TILEGX_TARGET_ELF_H
-static inline const char *cpu_get_model(uint32_t eflags)
-{
-    return "any";
-}
-#endif
diff --git a/linux-user/tilegx/target_fcntl.h b/linux-user/tilegx/target_fcntl.h
deleted file mode 100644
index 5ed7438459..0000000000
--- a/linux-user/tilegx/target_fcntl.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation, or (at your option) any
- * later version. See the COPYING file in the top-level directory.
- */
-
-#ifndef TILEGX_TARGET_FCNTL_H
-#define TILEGX_TARGET_FCNTL_H
-#include "../generic/fcntl.h"
-#endif
diff --git a/linux-user/tilegx/target_signal.h b/linux-user/tilegx/target_signal.h
deleted file mode 100644
index 655be13009..0000000000
--- a/linux-user/tilegx/target_signal.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef TILEGX_TARGET_SIGNAL_H
-#define TILEGX_TARGET_SIGNAL_H
-
-/* this struct defines a stack used during syscall handling */
-
-typedef struct target_sigaltstack {
-    abi_ulong ss_sp;
-    abi_int ss_flags;
-    abi_ulong ss_size;
-} target_stack_t;
-
-/*
- * sigaltstack controls
- */
-#define TARGET_SS_ONSTACK     1
-#define TARGET_SS_DISABLE     2
-
-#define TARGET_MINSIGSTKSZ    2048
-#define TARGET_SIGSTKSZ       8192
-
-#include "../generic/signal.h"
-
-#endif /* TILEGX_TARGET_SIGNAL_H */
diff --git a/linux-user/tilegx/target_structs.h b/linux-user/tilegx/target_structs.h
deleted file mode 100644
index 1df000cc96..0000000000
--- a/linux-user/tilegx/target_structs.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * TILE-Gx specific structures for linux-user
- *
- * Copyright (c) 2015 Chen Gang
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
-#ifndef TILEGX_TARGET_STRUCTS_H
-#define TILEGX_TARGET_STRUCTS_H
-
-struct target_ipc_perm {
-    abi_int __key;                      /* Key.  */
-    abi_uint uid;                       /* Owner's user ID.  */
-    abi_uint gid;                       /* Owner's group ID.  */
-    abi_uint cuid;                      /* Creator's user ID.  */
-    abi_uint cgid;                      /* Creator's group ID.  */
-    abi_uint mode;                      /* Read/write permission.  */
-    abi_ushort __seq;                   /* Sequence number.  */
-};
-
-struct target_shmid_ds {
-    struct target_ipc_perm shm_perm;    /* operation permission struct */
-    abi_long shm_segsz;                 /* size of segment in bytes */
-    abi_ulong shm_atime;                /* time of last shmat() */
-    abi_ulong shm_dtime;                /* time of last shmdt() */
-    abi_ulong shm_ctime;                /* time of last change by shmctl() */
-    abi_int shm_cpid;                   /* pid of creator */
-    abi_int shm_lpid;                   /* pid of last shmop */
-    abi_ushort shm_nattch;              /* number of current attaches */
-    abi_ushort shm_unused;              /* compatibility */
-    abi_ulong __unused4;
-    abi_ulong __unused5;
-};
-
-#endif
diff --git a/linux-user/tilegx/target_syscall.h b/linux-user/tilegx/target_syscall.h
deleted file mode 100644
index 8e9db734b8..0000000000
--- a/linux-user/tilegx/target_syscall.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef TILEGX_TARGET_SYSCALL_H
-#define TILEGX_TARGET_SYSCALL_H
-
-#define UNAME_MACHINE "tilegx"
-#define UNAME_MINIMUM_RELEASE "3.19"
-
-#define MMAP_SHIFT TARGET_PAGE_BITS
-
-#define TILEGX_IS_ERRNO(ret) \
-                       ((ret) > 0xfffffffffffff000ULL) /* errno is 0 -- 4096 */
-
-typedef uint64_t tilegx_reg_t;
-
-struct target_pt_regs {
-
-    union {
-        /* Saved main processor registers; 56..63 are special. */
-        tilegx_reg_t regs[56];
-        struct {
-            tilegx_reg_t __regs[53];
-            tilegx_reg_t tp;    /* aliases regs[TREG_TP] */
-            tilegx_reg_t sp;    /* aliases regs[TREG_SP] */
-            tilegx_reg_t lr;    /* aliases regs[TREG_LR] */
-        };
-    };
-
-    /* Saved special registers. */
-    tilegx_reg_t pc;            /* stored in EX_CONTEXT_K_0 */
-    tilegx_reg_t ex1;           /* stored in EX_CONTEXT_K_1 (PL and ICS bit) */
-    tilegx_reg_t faultnum;      /* fault number (INT_SWINT_1 for syscall) */
-    tilegx_reg_t orig_r0;       /* r0 at syscall entry, else zero */
-    tilegx_reg_t flags;         /* flags (see below) */
-    tilegx_reg_t cmpexch;       /* value of CMPEXCH_VALUE SPR at interrupt */
-    tilegx_reg_t pad[2];
-};
-
-#define TARGET_MCL_CURRENT 1
-#define TARGET_MCL_FUTURE  2
-#define TARGET_MCL_ONFAULT 4
-
-/* For faultnum */
-#define TARGET_INT_SWINT_1            14
-
-#endif
diff --git a/linux-user/tilegx/termbits.h b/linux-user/tilegx/termbits.h
deleted file mode 100644
index b1d4f4fedb..0000000000
--- a/linux-user/tilegx/termbits.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../generic/termbits.h"