Binyamin Dissen wrote:
I wonder why MVCP or MVCS should require millicode.
Is it because the length and key are in registers?
Instruction complexity is certainly one reason why an instruction might
be implemented in millicode. But, there are other, less obvious reasons.
Chip "real estate" is a big factor. The designers are always looking for
logic they can offload into millicode to make room for more "important"
things. They run various workloads through an simulator that counts all
of the instructions used. Those that are infrequently used have a much
better chance of millicode reimplementation that do those that are
executed often.
It's an unfortunate, circular, self-fulfillment. Millicoded instructions
execute slowly. Software developers and compiler writers avoid using
slow instructions. Infrequently used instructions get implemented in
millicode...
Here at PSI, we ended up rewriting many routines that had worked for
decades because TR/TRT went from an ultra-fast, hardware implementation
to a slow, millicode implementation. For short strings, we found that
TR/TRT could be replaced by a loop of equivalent hardware-implemented
instructions that ran considerably faster! Apparently, the "new"
workloads IBM used for their modeling don't use TR/TRT very often. :-(
--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html