MessageNode.st
changeset 2345 d3c1bbb5cddc
parent 2344 4cfbc5060382
child 2384 3854f86e767a
equal deleted inserted replaced
2344:4cfbc5060382 2345:d3c1bbb5cddc
   657 codeOn:aStream inBlock:b for:aCompiler
   657 codeOn:aStream inBlock:b for:aCompiler
   658     self codeOn:aStream inBlock:b valueNeeded:true for:aCompiler
   658     self codeOn:aStream inBlock:b valueNeeded:true for:aCompiler
   659 !
   659 !
   660 
   660 
   661 codeOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
   661 codeOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
       
   662     "most work is in checking for inlinable code here."
       
   663 
   662     |recType nargs isBuiltIn litIndex cls clsLitIndex code isSpecial
   664     |recType nargs isBuiltIn litIndex cls clsLitIndex code isSpecial
   663      specialCode stackTop arg1 arg2 arg3 isSuper realReceiver 
   665      specialCode stackTop arg1 arg2 arg3 isSuper realReceiver 
   664      noSendDrop alreadyDropped
   666      noSendDrop alreadyDropped
   665      useSelfSend usedSelector|
   667      useSelfSend usedSelector|
   666 
   668 
   892             receiver codeOn:aStream inBlock:b for:aCompiler
   894             receiver codeOn:aStream inBlock:b for:aCompiler
   893         ].
   895         ].
   894         ^ self
   896         ^ self
   895     ].
   897     ].
   896 
   898 
   897     "no - generate a send"
   899     "not inlinable - generate a send"
   898 
   900 
   899     stackTop := nil.
   901     stackTop := nil.
   900 
   902 
   901     useSelfSend := isSuper not and:[ recType == #Self and:[ litIndex <= 16rFFFF ] ].
   903     useSelfSend := isSuper not and:[ recType == #Self and:[ litIndex <= 16rFFFF ] ].
   902     useSelfSend ifFalse:[
   904     useSelfSend ifFalse:[
  2993 ! !
  2995 ! !
  2994 
  2996 
  2995 !MessageNode class methodsFor:'documentation'!
  2997 !MessageNode class methodsFor:'documentation'!
  2996 
  2998 
  2997 version
  2999 version
  2998     ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.173 2010-04-13 09:51:11 cg Exp $'
  3000     ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.174 2010-04-13 09:52:56 cg Exp $'
  2999 !
  3001 !
  3000 
  3002 
  3001 version_CVS
  3003 version_CVS
  3002     ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.173 2010-04-13 09:51:11 cg Exp $'
  3004     ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.174 2010-04-13 09:52:56 cg Exp $'
  3003 ! !
  3005 ! !