The following functions are called frequently, and should probably
be called via the c stack at least in some more cases.

Lappend
Lcopy_list    (t) nil t  "copy_list(#0)"
Lerror 'ifuncall
Lfloat ;num_co.c rewrite it
Lformat ;ifuncall
Lfoundp ;rewrite
Lgetf ; (t t t) nil nil "getf(#0,#1,#2)" 'inline-always
      ;  (t t) nil nil "getf(#0,#1)"   'inline-always
Lhash_table_p  (t) nil nil "type_of(#0)==t_hashtable"  'inline-always
Lintern  ;rewrite.
Llast ;rewrite
Llog  (t t) nil t "number_log(#0,#1)" 'inline-always
;;number_zerop does check the args are numbers and it gets called on the args.

Lminus  (t) t nil "number_negate(#0)" 'inline-always
Lminus  (t t) t nil "number_minus(#0,#1)" 'inline-always
        ;;higher need a c1minus to fix it up.
Lnconc ;; rewrite
Loddp  (t) nil nil "number_oddp(#0)" 'inline-always
Lplus  (t) nil nil "(#0)"
Lplus  (t t) t nil "number_plus(#0,#1)" 'inline-always
      ;;higher need c1plus...
Lreconc ;;rewrite
Lrem  ;;rewrite (second value of Ltruncate)
Lset  ;;rewrite, could also have fast version
   "@0;(type_of(#0)==t_symbol : (#0)->s.s_dbind=(#1) ? not_a_symbol(#0))"

Lsublis ;rewrite note sublis is NOT what want.  Need to do saving and so on
       ;of the top level test, key, ...
Lnsublis ;same as sublis
subst ;same as sublis;same
nsubst ;;same as sublis
siLaset ;;(si::aset ar ind0 ind1 ... newvalue)
   ??    (t fixnum t)  nil t "aset1(#0,#1,#2)"

siLhash_set (t t t) t t "@01;(sethash(#0,#1,#2),#2)" 'inline-unsafe
   ;;should add a check its a table  and return for this.



