Ignore:
Timestamp:
11/28/08 14:17:04 (13 years ago)
Author:
felix winkelmann
Message:

merged trunk changes into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chicken/branches/lazy-gensyms/c-backend.scm

    r12612 r12639  
    305305                             (expr-args args i)
    306306                             (gen ");") ) ) )
     307                     ((and (eq? '##core#global (node-class fn))
     308                           (not unsafe)
     309                           (not no-procedure-checks)
     310                           (not (first params)))
     311                      (let* ((gparams (node-parameters fn))
     312                             (index (first gparams))
     313                             (safe (second gparams))
     314                             (block (third gparams))
     315                             (carg #f))
     316                        (gen #t "((C_proc" nf ")")
     317                        (cond (block
     318                               (set! carg (string-append "lf[" (number->string index) "]"))
     319                               (if safe
     320                                   (gen "C_retrieve_proc(" carg ")")
     321                                   (gen "C_retrieve2_symbol_proc(" carg ","
     322                                        (c-ify-string (symbol->string (fourth gparams))) #\)) ) )
     323                              (safe
     324                               (set! carg
     325                                 (string-append "*((C_word*)lf[" (number->string index) "]+1)"))
     326                               (gen "C_retrieve_proc(" carg ")"))
     327                              (else
     328                               (set! carg
     329                                 (string-append "*((C_word*)lf[" (number->string index) "]+1)"))
     330                               (gen "C_retrieve_symbol_proc(lf[" index "])") ))
     331                        (gen ")(" nf #\, carg #\,)
     332                        (expr-args args i)
     333                        (gen ");") ) )
    307334                     (else
    308335                      (gen #t #\t nc #\=)
Note: See TracChangeset for help on using the changeset viewer.