Commit 10d7cd2a authored by David Mosberger's avatar David Mosberger

ia64: Desupport GCC 2.96 and everything older.

parent 57f5a17e
...@@ -36,7 +36,7 @@ $(error Sorry, you need a newer version of the assember, one that is built from ...@@ -36,7 +36,7 @@ $(error Sorry, you need a newer version of the assember, one that is built from
endif endif
ifneq ($(GCC_VERSION),2) ifneq ($(GCC_VERSION),2)
cflags-$(CONFIG_ITANIUM) += -frename-registers $(error Sorry, your compiler is too old. GCC v2.96 is known to generate bad code.)
endif endif
ifeq ($(GCC_VERSION),3) ifeq ($(GCC_VERSION),3)
......
...@@ -829,11 +829,7 @@ skip_rbs_switch: ...@@ -829,11 +829,7 @@ skip_rbs_switch:
ssm psr.i // enable interrupts ssm psr.i // enable interrupts
#endif #endif
#if __GNUC__ < 3
br.call.spnt.many rp=invoke_schedule
#else
br.call.spnt.many rp=schedule br.call.spnt.many rp=schedule
#endif
.ret9: cmp.eq p6,p0=r0,r0 // p6 <- 1 .ret9: cmp.eq p6,p0=r0,r0 // p6 <- 1
rsm psr.i // disable interrupts rsm psr.i // disable interrupts
;; ;;
...@@ -892,31 +888,6 @@ GLOBAL_ENTRY(ia64_invoke_schedule_tail) ...@@ -892,31 +888,6 @@ GLOBAL_ENTRY(ia64_invoke_schedule_tail)
br.ret.sptk.many rp br.ret.sptk.many rp
END(ia64_invoke_schedule_tail) END(ia64_invoke_schedule_tail)
#if __GNUC__ < 3
/*
* Invoke schedule() while preserving in0-in7, which may be needed
* in case a system call gets restarted. Note that declaring schedule()
* with asmlinkage() is NOT enough because that will only preserve as many
* registers as there are formal arguments.
*
* XXX fix me: with gcc 3.0, we won't need this anymore because syscall_linkage
* renders all eight input registers (in0-in7) as "untouchable".
*/
ENTRY(invoke_schedule)
.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(8)
alloc loc1=ar.pfs,8,2,0,0
mov loc0=rp
;;
.body
br.call.sptk.many rp=schedule
.ret14: mov ar.pfs=loc1
mov rp=loc0
br.ret.sptk.many rp
END(invoke_schedule)
#endif /* __GNUC__ < 3 */
/* /*
* Setup stack and call do_notify_resume_user(). Note that pSys and pNonSys need to * Setup stack and call do_notify_resume_user(). Note that pSys and pNonSys need to
* be set up by the caller. We declare 8 input registers so the system call * be set up by the caller. We declare 8 input registers so the system call
......
...@@ -1636,10 +1636,6 @@ pfm_read_pmds(struct task_struct *task, pfm_context_t *ctx, void *arg, int count ...@@ -1636,10 +1636,6 @@ pfm_read_pmds(struct task_struct *task, pfm_context_t *ctx, void *arg, int count
unsigned int cnum, reg_flags = 0; unsigned int cnum, reg_flags = 0;
int i, ret = 0; int i, ret = 0;
#if __GNUC__ < 3
int foo;
#endif
if (!CTX_IS_ENABLED(ctx)) return -EINVAL; if (!CTX_IS_ENABLED(ctx)) return -EINVAL;
/* /*
...@@ -1655,15 +1651,9 @@ pfm_read_pmds(struct task_struct *task, pfm_context_t *ctx, void *arg, int count ...@@ -1655,15 +1651,9 @@ pfm_read_pmds(struct task_struct *task, pfm_context_t *ctx, void *arg, int count
for (i = 0; i < count; i++, req++) { for (i = 0; i < count; i++, req++) {
int me; int me;
#if __GNUC__ < 3
foo = __get_user(cnum, &req->reg_num);
if (foo) return -EFAULT;
foo = __get_user(reg_flags, &req->reg_flags);
if (foo) return -EFAULT;
#else
if (__get_user(cnum, &req->reg_num)) return -EFAULT; if (__get_user(cnum, &req->reg_num)) return -EFAULT;
if (__get_user(reg_flags, &req->reg_flags)) return -EFAULT; if (__get_user(reg_flags, &req->reg_flags)) return -EFAULT;
#endif
lval = 0UL; lval = 0UL;
if (!PMD_IS_IMPL(cnum)) goto abort_mission; if (!PMD_IS_IMPL(cnum)) goto abort_mission;
......
...@@ -15,11 +15,7 @@ ...@@ -15,11 +15,7 @@
#include <asm/asmmacro.h> #include <asm/asmmacro.h>
#include <asm/page.h> #include <asm/page.h>
#if __GNUC__ >= 3 #define EK(y...) EX(y)
# define EK(y...) EX(y)
#else
# define EK(y,x...) x
#endif
GLOBAL_ENTRY(bcopy) GLOBAL_ENTRY(bcopy)
.regstk 3,0,0,0 .regstk 3,0,0,0
......
...@@ -43,21 +43,12 @@ ...@@ -43,21 +43,12 @@
.section "__ex_table", "a" // declare section & section attributes .section "__ex_table", "a" // declare section & section attributes
.previous .previous
#if __GNUC__ >= 3
# define EX(y,x...) \ # define EX(y,x...) \
.xdata4 "__ex_table", 99f-., y-.; \ .xdata4 "__ex_table", 99f-., y-.; \
[99:] x [99:] x
# define EXCLR(y,x...) \ # define EXCLR(y,x...) \
.xdata4 "__ex_table", 99f-., y-.+4; \ .xdata4 "__ex_table", 99f-., y-.+4; \
[99:] x [99:] x
#else
# define EX(y,x...) \
.xdata4 "__ex_table", 99f-., y-.; \
99: x
# define EXCLR(y,x...) \
.xdata4 "__ex_table", 99f-., y-.+4; \
99: x
#endif
/* /*
* For now, we always put in the McKinley E9 workaround. On CPUs that don't need it, * For now, we always put in the McKinley E9 workaround. On CPUs that don't need it,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment