[pypy-svn] r16527 - in pypy/dist/pypy/translator/llvm2: . module
rxe at codespeak.net
rxe at codespeak.net
Thu Aug 25 19:05:56 CEST 2005
Author: rxe
Date: Thu Aug 25 19:05:55 2005
New Revision: 16527
Modified:
pypy/dist/pypy/translator/llvm2/genllvm.py
pypy/dist/pypy/translator/llvm2/module/genexterns.c
pypy/dist/pypy/translator/llvm2/module/support.py
Log:
More progress towards ll_strtod_formatd.
Modified: pypy/dist/pypy/translator/llvm2/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm2/genllvm.py Thu Aug 25 19:05:55 2005
@@ -40,6 +40,9 @@
#find function names, declare them internal with fastcc calling convertion
ll_lines = []
funcnames = {
+ "%RPyString_Size" : True,
+ "%RPyString_AsString" : True,
+ "%RPyString_FromString" : True,
"%ll_frexp_result__Float_Signed" : True,
"%ll_modf_result__Float_Float" : True,
"%prepare_and_raise_ZeroDivisionError" : True,
@@ -184,6 +187,7 @@
fns = [('ll_math_%s' % f) for f in math_fns.split()]
time_fns = "ll_time_time ll_time_clock ll_time_sleep ll_floattime"
fns += time_fns.split()
+ fns.append('ll_strtod_formatd')
return get_ll(open(p).read(), extern_dir, fns)
def gen_llvm_source(self, func=None):
Modified: pypy/dist/pypy/translator/llvm2/module/genexterns.c
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/genexterns.c (original)
+++ pypy/dist/pypy/translator/llvm2/module/genexterns.c Thu Aug 25 19:05:55 2005
@@ -17,6 +17,10 @@
struct RPyFREXP_RESULT *ll_frexp_result__Float_Signed(double, int);
struct RPyMODF_RESULT *ll_modf_result__Float_Float(double, double);
+char *RPyString_AsString(struct RPyString*);
+int RPyString_Size(struct RPyString_Size*);
+struct RPyString *RPyString_FromString(char *);
+
void prepare_and_raise_OverflowError(char *);
void prepare_and_raise_ValueError(char *);
void prepare_and_raise_IOError(char *);
@@ -424,7 +428,7 @@
if (fail_pos > last)
fail_pos = last;
if (fail_pos == s || *fail_pos != '\0' || fail_pos != last) {
- RPyRaiseSimpleException(PyExc_ValueError, "invalid float literal");
+ prepare_and_raise_ValueError("invalid float literal");
return -1.0;
}
if (x == 0.0) { /* maybe a denormal value, ask for atof behavior */
@@ -435,7 +439,7 @@
}
-struct RPyString *LL_strtod_formatd(struct RPyString *fmt, double x) {
+struct RPyString *ll_strtod_formatd(struct RPyString *fmt, double x) {
char buffer[120]; /* this should be enough, from PyString_Format code */
int buflen = 120;
int res;
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 Thu Aug 25 19:05:55 2005
@@ -49,7 +49,6 @@
""")
-
extfunctions["%RPyString_FromString"] = ((), """
internal fastcc %RPyString* %RPyString_FromString(sbyte* %s) {
%len = call ccc int %strlen(sbyte* %s)
More information about the Pypy-commit
mailing list