diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/alloc.c | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ad2da41b98c..66939d965d0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2003-01-24 Dave Love <fx@gnu.org> | ||
| 2 | |||
| 3 | * s/gnu-linux.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define for more | ||
| 4 | architectures. | ||
| 5 | |||
| 6 | * alloc.c (mark_stack) [!GC_LISP_OBJECT_ALIGNMENT && __GNUC__]: | ||
| 7 | Use __alignof__. | ||
| 8 | |||
| 1 | 2003-01-24 Kenichi Handa <handa@m17n.org> | 9 | 2003-01-24 Kenichi Handa <handa@m17n.org> |
| 2 | 10 | ||
| 3 | * keyboard.c (adjust_point_for_property): New second arg MODIFIED. | 11 | * keyboard.c (adjust_point_for_property): New second arg MODIFIED. |
diff --git a/src/alloc.c b/src/alloc.c index 10c4f6f235d..fb15f883175 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3774,6 +3774,9 @@ mark_stack () | |||
| 3774 | 3774 | ||
| 3775 | /* This trick flushes the register windows so that all the state of | 3775 | /* This trick flushes the register windows so that all the state of |
| 3776 | the process is contained in the stack. */ | 3776 | the process is contained in the stack. */ |
| 3777 | /* Fixme: Code in the Boehm GC sugests flushing (with `flushrs') is | ||
| 3778 | needed on ia64 too. See mach_dep.c, where it also says inline | ||
| 3779 | assembler doesn't work with relevant proprietary compilers. */ | ||
| 3777 | #ifdef sparc | 3780 | #ifdef sparc |
| 3778 | asm ("ta 3"); | 3781 | asm ("ta 3"); |
| 3779 | #endif | 3782 | #endif |
| @@ -3804,8 +3807,12 @@ mark_stack () | |||
| 3804 | that's not the case, something has to be done here to iterate | 3807 | that's not the case, something has to be done here to iterate |
| 3805 | over the stack segments. */ | 3808 | over the stack segments. */ |
| 3806 | #ifndef GC_LISP_OBJECT_ALIGNMENT | 3809 | #ifndef GC_LISP_OBJECT_ALIGNMENT |
| 3810 | #ifdef __GNUC__ | ||
| 3811 | #define GC_LISP_OBJECT_ALIGNMENT __alignof__ (Lisp_Object) | ||
| 3812 | #else | ||
| 3807 | #define GC_LISP_OBJECT_ALIGNMENT sizeof (Lisp_Object) | 3813 | #define GC_LISP_OBJECT_ALIGNMENT sizeof (Lisp_Object) |
| 3808 | #endif | 3814 | #endif |
| 3815 | #endif | ||
| 3809 | for (i = 0; i < sizeof (Lisp_Object); i += GC_LISP_OBJECT_ALIGNMENT) | 3816 | for (i = 0; i < sizeof (Lisp_Object); i += GC_LISP_OBJECT_ALIGNMENT) |
| 3810 | mark_memory ((char *) stack_base + i, end); | 3817 | mark_memory ((char *) stack_base + i, end); |
| 3811 | 3818 | ||