[pypy-svn] r16107 - pypy/dist/pypy/translator/llvm2/module
ericvrp at codespeak.net
ericvrp at codespeak.net
Wed Aug 17 13:12:18 CEST 2005
Author: ericvrp
Date: Wed Aug 17 13:12:13 2005
New Revision: 16107
Modified:
pypy/dist/pypy/translator/llvm2/module/extfunction.py
pypy/dist/pypy/translator/llvm2/module/ll_os.py
pypy/dist/pypy/translator/llvm2/module/support.py
Log:
overallocate one byte for all allocation and zero initialize all allocated data
(this is a quick fix for non null terminated (dynamic) strings
Modified: pypy/dist/pypy/translator/llvm2/module/extfunction.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/extfunction.py (original)
+++ pypy/dist/pypy/translator/llvm2/module/extfunction.py Wed Aug 17 13:12:13 2005
@@ -11,14 +11,19 @@
gc_boehm = """declare ccc sbyte* %GC_malloc(uint)
declare ccc sbyte* %GC_malloc_atomic(uint)
+declare ccc sbyte* %memset(sbyte*, int, uint)
internal fastcc sbyte* %gc_malloc(uint %n) {
- %ptr = call ccc sbyte* %GC_malloc(uint %n)
+ %nn = add uint %n, 1
+ %ptr = call ccc sbyte* %GC_malloc(uint %nn)
+ call ccc sbyte* %memset(sbyte* %ptr, int 0, uint %nn) ;XXX force non-zero init for testing
ret sbyte* %ptr
}
internal fastcc sbyte* %gc_malloc_atomic(uint %n) {
- %ptr = call ccc sbyte* %GC_malloc_atomic(uint %n)
+ %nn = add uint %n, 1
+ %ptr = call ccc sbyte* %GC_malloc_atomic(uint %nn)
+ call ccc sbyte* %memset(sbyte* %ptr, int 0, uint %nn) ;XXX force non-zero init for testing
ret sbyte* %ptr
}
"""
Modified: pypy/dist/pypy/translator/llvm2/module/ll_os.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/ll_os.py (original)
+++ pypy/dist/pypy/translator/llvm2/module/ll_os.py Wed Aug 17 13:12:13 2005
@@ -6,7 +6,6 @@
declare ccc int %write(int, sbyte*, int)
declare ccc int %read(int, sbyte*, int)
declare ccc sbyte* %strncpy(sbyte*, sbyte*, int)
-declare ccc int %strlen(sbyte*)
declare ccc int %isatty(int)
declare ccc int %stat(sbyte*, [32 x int]*)
declare ccc int %fstat(int, [32 x int]*)
Modified: pypy/dist/pypy/translator/llvm2/module/support.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/support.py (original)
+++ pypy/dist/pypy/translator/llvm2/module/support.py Wed Aug 17 13:12:13 2005
@@ -2,6 +2,7 @@
declare ccc double %pow(double, double)
declare ccc double %fmod(double, double)
declare ccc int %puts(sbyte*)
+declare ccc int %strlen(sbyte*)
"""
More information about the Pypy-commit
mailing list