From 39bbac1e95d6d1c4004ac4c34525c891307b651b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 24 Apr 2002 18:17:16 +0000 Subject: * sysdeps/mach/alpha/syscall.S: Don't use .frame, ENTRY will have it; use END macro instead of our own .end directive. Use `callsys' insn mnemonic instead of `call_pal'. * sysdeps/mach/alpha/sysdep.h (ENTRY): New macro. * sysdeps/alpha/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New macro; we need this for Hurd. Log entry was missing for 2002/03/24 commit of rev 1.8, goes with 2002-03-17 changes. * sysdeps/mach/hurd/i386/Makefile [$(subdir) = misc] (sysdep_routines): Append ioperm here. (sysdep_headers): Append sys/io.h here. --- ChangeLog | 17 +++++++++++++++++ sysdeps/alpha/dl-machine.h | 4 ++++ sysdeps/mach/alpha/syscall.S | 10 ++++------ sysdeps/mach/alpha/sysdep.h | 9 +++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index fa5687c3f1..39c756bceb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2002-04-24 Roland McGrath + + * sysdeps/mach/alpha/syscall.S: Don't use .frame, ENTRY will have it; + use END macro instead of our own .end directive. + Use `callsys' insn mnemonic instead of `call_pal'. + + * sysdeps/mach/alpha/sysdep.h (ENTRY): New macro. + + * sysdeps/alpha/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New + macro; we need this for Hurd. + + Log entry was missing for 2002/03/24 commit of rev 1.8, + goes with 2002-03-17 changes. + * sysdeps/mach/hurd/i386/Makefile [$(subdir) = misc] + (sysdep_routines): Append ioperm here. + (sysdep_headers): Append sys/io.h here. + 2002-04-23 Roland McGrath * sysdeps/mach/hurd/send.c: int -> size_t for WROTE. diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index f6d33739a0..2b15e33518 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -29,6 +29,10 @@ #include +/* Mask identifying addresses reserved for the user program, + where the dynamic linker should not map anything. */ +#define ELF_MACHINE_USER_ADDRESS_MASK 0x120000000UL + /* Return nonzero iff ELF header is compatible with the running host. */ static inline int elf_machine_matches_host (const Elf64_Ehdr *ehdr) diff --git a/sysdeps/mach/alpha/syscall.S b/sysdeps/mach/alpha/syscall.S index 8cb85bff55..15fc5b75b7 100644 --- a/sysdeps/mach/alpha/syscall.S +++ b/sysdeps/mach/alpha/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994,97,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,10 +17,8 @@ 02111-1307 USA. */ #include -#include ENTRY (syscall) - .frame sp,0,ra mov a0, v0 /* Load system call number from first arg. */ mov a1, a0 mov a2, a1 @@ -34,6 +32,6 @@ ENTRY (syscall) ldq t2,24(sp) ldq t3,32(sp) ldq t4,40(sp) - call_pal op_chmk - RET - .end syscall + callsys + ret +END (syscall) diff --git a/sysdeps/mach/alpha/sysdep.h b/sysdeps/mach/alpha/sysdep.h index ddd98d666a..84e21c8d5d 100644 --- a/sysdeps/mach/alpha/sysdep.h +++ b/sysdeps/mach/alpha/sysdep.h @@ -43,6 +43,15 @@ #define ALIGN 3 #include +/* Alpha needs the .ent and .frame magic that the generic version lacks. */ +#undef ENTRY +#define ENTRY(name) \ + .globl name; \ + .align 3; \ + .ent name, 0; \ + name##: \ + .frame sp, 0, ra + #include #undef at #define at 28 -- cgit v1.2.3