[pypy-commit] pypy gc_no_cleanup_nursery: Try to write down how exactly the NEW_* operations are supposed to clear
arigo
noreply at buildbot.pypy.org
Thu Sep 25 10:14:53 CEST 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: gc_no_cleanup_nursery
Changeset: r73689:1559dc36fe9e
Date: 2014-09-25 10:14 +0200
http://bitbucket.org/pypy/pypy/changeset/1559dc36fe9e/
Log: Try to write down how exactly the NEW_* operations are supposed to
clear (or not) the new objects. Add NEW_ARRAY_CLEAR.
diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -481,11 +481,13 @@
'GETFIELD_GC/1d',
'GETFIELD_RAW/1d',
'_MALLOC_FIRST',
- 'NEW/0d',
- 'NEW_WITH_VTABLE/1',
- 'NEW_ARRAY/1d',
- 'NEWSTR/1',
- 'NEWUNICODE/1',
+ 'NEW/0d', #-> GcStruct, gcptrs inside are zeroed (not the rest)
+ 'NEW_WITH_VTABLE/1', #-> GcStruct with vtable, gcptrs inside are zeroed
+ 'NEW_ARRAY/1d', #-> GcArray, zeroed if array of gcptr or of structs
+ # (even if struct has no gcptrs)
+ 'NEW_ARRAY_CLEAR/1d', #-> GcArray, zeroed always
+ 'NEWSTR/1', #-> STR, the hash field is zeroed
+ 'NEWUNICODE/1', #-> UNICODE, the hash field is zeroed
'_MALLOC_LAST',
'FORCE_TOKEN/0',
'VIRTUAL_REF/2', # removed before it's passed to the backend
More information about the pypy-commit
mailing list