Ignore:
Timestamp:
Apr 27, 2004, 8:39:34 PM (22 years ago)
Author:
bird
Message:

GCC v3.3.3 sources.

Location:
branches/GNU/src/gcc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/gcc

    • Property svn:ignore
      •  

        old new  
        2626configure.vr
        2727configure.vrs
         28
        2829Makefile
        29 dir.info
        3030lost+found
        3131update.out
  • branches/GNU/src/gcc/libjava/include/i386-signal.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r1390 r1391  
    109109};
    110110
    111 #define INIT_SEGV                                               \
    112 do                                                              \
    113   {                                                             \
    114     nullp = new java::lang::NullPointerException ();            \
     111#define RESTORE(name, syscall) RESTORE2 (name, syscall)
     112# define RESTORE2(name, syscall) \
     113asm                                             \
     114  (                                             \
     115   ".text\n"                                    \
     116   ".byte 0  # Yes, this really is necessary\n" \
     117   "    .align 8\n"                             \
     118   "__" #name ":\n"                             \
     119   "    popl %eax\n"                            \
     120   "    movl $" #syscall ", %eax\n"             \
     121   "    int  $0x80"                             \
     122   );
     123
     124RESTORE (restore, __NR_sigreturn)
     125static void restore (void) asm ("__restore");
     126
     127#define INIT_SEGV                                       \
     128do                                                      \
     129  {                                                     \
     130    nullp = new java::lang::NullPointerException ();    \
    115131    struct old_i386_kernel_sigaction kact;              \
    116132    kact.k_sa_handler = catch_segv;                     \
    117133    kact.k_sa_mask = 0;                                 \
    118     kact.k_sa_flags = 0;                                \
     134    kact.k_sa_flags = 0x4000000;                        \
     135    kact.sa_restorer = restore;                         \
    119136    syscall (SYS_sigaction, SIGSEGV, &kact, NULL);      \
    120   }                                                             \
     137  }                                                     \
    121138while (0) 
    122139
    123140#define INIT_FPE                                                \
    124141do                                                              \
    125   {                                                             \
    126     arithexception = new java::lang::ArithmeticException        \
     142  {                                                             \
     143    arithexception = new java::lang::ArithmeticException        \
    127144      (JvNewStringLatin1 ("/ by zero"));                        \
    128145    struct old_i386_kernel_sigaction kact;                      \
    129146    kact.k_sa_handler = catch_fpe;                              \
    130147    kact.k_sa_mask = 0;                                         \
    131     kact.k_sa_flags = 0;                                        \
     148    kact.k_sa_flags = 0x4000000;                                \
     149    kact.sa_restorer = restore;                                 \
    132150    syscall (SYS_sigaction, SIGFPE, &kact, NULL);               \
    133151  }                                                             \
     
    148166 * Also, there is at the present time no unwind info in the
    149167 * linuxthreads library's signal handlers and so we can't unwind
    150  * through them anyway. 
    151 
    152  * Finally, the code that glibc uses to return from a signal handler
    153  * is subject to change.  */
     168 * through them anyway.  */
    154169
    155170#endif /* JAVA_SIGNAL_H */
Note: See TracChangeset for help on using the changeset viewer.