[comp.lang.forth] MOVE VS CMOVE

ForthNet@willett.UUCP (ForthNet articles from GEnie) (01/06/90)

 Date: 12-23-89 (03:15)              Number: 343
   To: R.BERKEY [ROBERT]             Refer#: 337
 From: ROEDY GREEN                     Read: NO
 Subj: MOVE VS CMOVE                 Status: PUBLIC MESSAGE

 I worked a lot with PL/I.  It has operators that are impossible to
 optimize.  The compiler generates code that is unecessary 99% of the
 time, but to make the language look nice on paper, it they made life
 impossible for people who wanted fast code.  FORTH is not an behemoth
 pig language like PL/I.  It is used in small systems where code size
 and speed are paramount.  Since the target and source string
 rarely overlap I find it repugnant to think I have RUN-TIME code
 in there checking for this case.  A special different word is
 needed to warn the reader that the strings may potentially overlap.
 I doubt I will get my way.  What I will do is invent QMOVE that
 is like MOVE without the overlap check.  I have a large number
 of Q-verbs in BBL that are fast versions of other words that have
 some restrictions on use (bounds on values usually).
 BBL does string moves my moving 16 bits at a time with a 
 MOVSW followed by an optional MOVSB to get the last byte.
 Fooling around with the alignment cases seemed more overhead
 than you would save.
 Love Roedy
 .

 NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886   
-----
This message came from GEnie via willett through a semi-automated program.
Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'