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'