/[gcl]/gcl/cmpnew/gcl_cmpopt.lsp
ViewVC logotype

Diff of /gcl/cmpnew/gcl_cmpopt.lsp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by camm, Thu Sep 16 21:08:18 2004 UTC revision 1.9 by camm, Tue Nov 30 03:54:40 2004 UTC
# Line 93  Line 93 
93   (push '((t t t) t #.(flags ans set)SUBLIS1-INLINE)   (push '((t t t) t #.(flags ans set)SUBLIS1-INLINE)
94     (get 'sublis1 'inline-always))     (get 'sublis1 'inline-always))
95    
96    ;;FIXME the MAX and MIN optimized  arg evaluations aren't logically related to side effects
97    ;;      but we need to save the intermediate results in any case to avoid exponential
98    ;;      growth in nested expressions.  set added to flags for now here and in analogous
99    ;;      constructs involving ?.  CM 20041129
100    
101  ;;SYMBOL-LENGTH  ;;SYMBOL-LENGTH
102   (push '((t) fixnum #.(flags rfa)   (push '((t) fixnum #.(flags rfa set)
103    "@0;(type_of(#0)==t_symbol ? (#0)->s.st_fillp :not_a_variable((#0)))")    "@0;(type_of(#0)==t_symbol ? (#0)->s.st_fillp :not_a_variable((#0)))")
104     (get 'symbol-length 'inline-always))     (get 'symbol-length 'inline-always))
105    
# Line 779  type_of(#0)==t_bitvector") Line 784  type_of(#0)==t_bitvector")
784  ; (push '((fixnum fixnum) fixnum #.(flags rfa)  ; (push '((fixnum fixnum) fixnum #.(flags rfa)
785  ;  "@01;(#0>=0&&(#1)>0?(#0)/(#1):ifloor(#0,#1))")  ;  "@01;(#0>=0&&(#1)>0?(#0)/(#1):ifloor(#0,#1))")
786  ;   (get 'floor 'inline-always))  ;   (get 'floor 'inline-always))
787   (push '((fixnum fixnum) fixnum #.(flags rfa)   (push '((fixnum fixnum) fixnum #.(flags rfa set)
788    "@01;({fixnum _t=(#0)/(#1);((#1)<0  && (#0)<=0) || ((#1)>0 && (#0)>=0) || ((#1)*_t == (#0)) ? _t : _t - 1;})")    "@01;({fixnum _t=(#0)/(#1);((#1)<0  && (#0)<=0) || ((#1)>0 && (#0)>=0) || ((#1)*_t == (#0)) ? _t : _t - 1;})")
789     (get 'floor 'inline-always))     (get 'floor 'inline-always))
790    
# Line 900  type_of(#0)==t_bitvector") Line 905  type_of(#0)==t_bitvector")
905     (get 'make-list 'inline-always))     (get 'make-list 'inline-always))
906    
907  ;;MAX  ;;MAX
908   (push '((t t) t #.(flags)"@01;(number_compare(#0,#1)>=0?(#0):#1)")   (push '((t t) t #.(flags set)"@01;(number_compare(#0,#1)>=0?(#0):#1)")
909     (get 'max 'inline-always))     (get 'max 'inline-always))
910  (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;((#0)>=(#1)?(#0):#1)")  (push '((fixnum fixnum) fixnum #.(flags rfa set)"@01;((#0)>=(#1)?(#0):#1)")
911     (get 'max 'inline-always))     (get 'max 'inline-always))
912    
913  ;;MIN  ;;MIN
914   (push '((t t) t #.(flags)"@01;(number_compare(#0,#1)<=0?(#0):#1)")   (push '((t t) t #.(flags set)"@01;(number_compare(#0,#1)<=0?(#0):#1)")
915     (get 'min 'inline-always))     (get 'min 'inline-always))
916  (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;((#0)<=(#1)?(#0):#1)")  (push '((fixnum fixnum) fixnum #.(flags rfa set)"@01;((#0)<=(#1)?(#0):#1)")
917     (get 'min 'inline-always))     (get 'min 'inline-always))
918    
919  ;;MINUSP  ;;MINUSP
# Line 920  type_of(#0)==t_bitvector") Line 925  type_of(#0)==t_bitvector")
925  ;;MOD  ;;MOD
926  ; (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;(#0>=0&&(#1)>0?(#0)%(#1):imod(#0,#1))")  ; (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;(#0>=0&&(#1)>0?(#0)%(#1):imod(#0,#1))")
927  ;   (get 'mod 'inline-always))  ;   (get 'mod 'inline-always))
928   (push '((fixnum fixnum) fixnum #.(flags rfa)"@01;({fixnum _t=(#0)%(#1);((#1)<0 && _t<=0) || ((#1)>0 && _t>=0) ? _t : _t + (#1);})")   (push '((fixnum fixnum) fixnum #.(flags rfa set)"@01;({fixnum _t=(#0)%(#1);((#1)<0 && _t<=0) || ((#1)>0 && _t>=0) ? _t : _t + (#1);})")
929     (get 'mod 'inline-always))     (get 'mod 'inline-always))
930    
931  ;;NCONC  ;;NCONC

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26