diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-01-31 07:09:20 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-01-31 07:09:20 -0500 |
commit | ad92f7940c5fbbd8a0b021856e1fbde37eb9bc7a (patch) | |
tree | 1491b32c21da5f140e9eaa2c873aa1519a6a565f | |
parent | b107aaf90e6e324b3de872fdbf04067a81ce574b (diff) | |
download | gcc-ad92f7940c5fbbd8a0b021856e1fbde37eb9bc7a.zip gcc-ad92f7940c5fbbd8a0b021856e1fbde37eb9bc7a.tar.gz gcc-ad92f7940c5fbbd8a0b021856e1fbde37eb9bc7a.tar.bz2 |
(MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax.
From-SVN: r11126
-rw-r--r-- | gcc/config/m68k/m68k.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index c8280f6..60f3063 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Sun 68000/68020 version. - Copyright (C) 1987, 1988, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 93, 94, 95, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -926,15 +926,27 @@ while(0) /* Save all registers which may be clobbered by a function call. */ -#define MACHINE_STATE_SAVE(id) \ - asm (" movew cc,sp@-"); \ - asm (" moveml d0/d1/a0/a1,sp@-"); +#ifdef MOTOROLA +#define MACHINE_STATE_SAVE(id) \ + asm ("move.w %ccr,-(%sp)"); \ + asm ("movm.l &0xc0c0,-(%sp)"); +#else +#define MACHINE_STATE_SAVE(id) \ + asm ("movew cc,sp@-"); \ + asm ("moveml d0/d1/a0/a1,sp@-"); +#endif /* Restore all registers saved by MACHINE_STATE_SAVE. */ -#define MACHINE_STATE_RESTORE(id) \ - asm (" moveml sp@+,d0/d1/a0/a1"); \ - asm (" movew sp@+,cc"); +#ifdef MOTOROLA +#define MACHINE_STATE_RESTORE(id) \ + asm ("movm.l (%sp)+,&0x0303"); \ + asm ("move.w (%sp)+,%ccr"); +#else +#define MACHINE_STATE_RESTORE(id) \ + asm ("moveml sp@+,d0/d1/a0/a1"); \ + asm ("movew sp@+,cc"); +#endif /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. The value is tested only in |