aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc/reclaim.c
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@albatross.co.nz>2000-06-20 01:04:58 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2000-06-20 02:04:58 +0100
commitaec5061ba2487186e07012b1b9d2684c04dd027f (patch)
tree75ede5286875b779db37ba8e1ff6003b2dd7494f /boehm-gc/reclaim.c
parentaac350aaf9e77a205b5e852d2982df46fb54dbc8 (diff)
downloadgcc-aec5061ba2487186e07012b1b9d2684c04dd027f.zip
gcc-aec5061ba2487186e07012b1b9d2684c04dd027f.tar.gz
gcc-aec5061ba2487186e07012b1b9d2684c04dd027f.tar.bz2
Imported version 5.1.
2000-06-20 Bryce McKinlay <bryce@albatross.co.nz> Imported version 5.1. * acinclude.m4: Push version to 5.1. From-SVN: r34610
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 57c652e..4ace110 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);