summaryrefslogtreecommitdiffstats
path: root/boehm-gc/reclaim.c
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-20 01:04:58 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-20 01:04:58 +0000
commit80989924ed257837504be4a9fae570ae01f8c222 (patch)
tree75ede5286875b779db37ba8e1ff6003b2dd7494f /boehm-gc/reclaim.c
parentef4c833ea6237f4d5011fcab2355bfb2a468c067 (diff)
downloadppe42-gcc-80989924ed257837504be4a9fae570ae01f8c222.tar.gz
ppe42-gcc-80989924ed257837504be4a9fae570ae01f8c222.zip
2000-06-20 Bryce McKinlay <bryce@albatross.co.nz>
Imported version 5.1. * acinclude.m4: Push version to 5.1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34610 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/reclaim.c')
-rw-r--r--boehm-gc/reclaim.c49
1 files changed, 32 insertions, 17 deletions
diff --git a/boehm-gc/reclaim.c b/boehm-gc/reclaim.c
index 57c652ef265..4ace1107d62 100644
--- a/boehm-gc/reclaim.c
+++ b/boehm-gc/reclaim.c
@@ -236,18 +236,9 @@ register word sz;
/* Clear object, advance p to next object in the process */
q = p + sz;
p++; /* Skip link field */
-# if defined(SMALL_CONFIG) && defined(ALIGN_DOUBLE)
- /* We assert that sz must be even */
- *p++ = 0;
- while (p < q) {
- CLEAR_DOUBLE(p);
- p += 2;
- }
-# else
- while (p < q) {
+ while (p < q) {
*p++ = 0;
- }
-# endif
+ }
}
word_no += sz;
}
@@ -604,20 +595,32 @@ int report_if_found; /* Abort if a reclaimable object is found */
switch(sz) {
# ifndef SMALL_CONFIG
case 1:
- full = GC_block_nearly_full1(hhdr, 0xffffffffl);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0xffffffffffffffffl);
+# else
+ full = GC_block_nearly_full1(hhdr, 0xffffffffl);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
/* In the DONT_KNOW case, we let reclaim fault. */
*flh = GC_reclaim1(hbp, hhdr, *flh);
break;
case 2:
- full = GC_block_nearly_full1(hhdr, 0x55555555l);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0x5555555555555555l);
+# else
+ full = GC_block_nearly_full1(hhdr, 0x55555555l);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
*flh = GC_reclaim_clear2(hbp, hhdr, *flh);
break;
case 4:
- full = GC_block_nearly_full1(hhdr, 0x11111111l);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0x1111111111111111l);
+# else
+ full = GC_block_nearly_full1(hhdr, 0x11111111l);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
*flh = GC_reclaim_clear4(hbp, hhdr, *flh);
@@ -634,19 +637,31 @@ int report_if_found; /* Abort if a reclaimable object is found */
switch(sz) {
# ifndef SMALL_CONFIG
case 1:
- full = GC_block_nearly_full1(hhdr, 0xffffffffl);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0xffffffffffffffffl);
+# else
+ full = GC_block_nearly_full1(hhdr, 0xffffffffl);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
*flh = GC_reclaim1(hbp, hhdr, *flh);
break;
case 2:
- full = GC_block_nearly_full1(hhdr, 0x55555555l);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0x5555555555555555l);
+# else
+ full = GC_block_nearly_full1(hhdr, 0x55555555l);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
*flh = GC_reclaim_uninit2(hbp, hhdr, *flh);
break;
case 4:
- full = GC_block_nearly_full1(hhdr, 0x11111111l);
+# if CPP_WORDSZ == 64
+ full = GC_block_nearly_full1(hhdr, 0x1111111111111111l);
+# else
+ full = GC_block_nearly_full1(hhdr, 0x11111111l);
+# endif
if (TRUE == full) goto out;
if (FALSE == full) GC_write_hint(hbp);
*flh = GC_reclaim_uninit4(hbp, hhdr, *flh);
OpenPOWER on IntegriCloud