[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Orca/M bug MVN & MVP?



jlee@Bonnie.ICS.UCI.EDU (Joseph) writes:

>In <1v9uvc$rff@altitude.HIP.CAM.ORG> Phillip Vandry writes:
>>So I will take this oportunity to ask. What I can't seem to find out is:
>>will these commands cross bank boundaries? If not, they are not too useful,

>Yes, they do.  Info is in the GS hardware ref, and mostly any GS assembly
>book by a reliable author, I believe.

Uh, sorta, depending on what is meant by "cross bank boundaries". MVP/MVN
will move data from one bank to another, but neither the source or
destination data will cross a bank boundary during the operation -- the X
and Y registers wrap around to 0 and the bank numbers don't change, because
they are hard-coded in the instruction itself. (boo...)

Put simply, MVP/MVN are designed for the firmware crowd, not the application
crowd. They work great when most of the memory allocation is known at link
time, but that is not true in many cases when fast move operations come in
really handy, i.e. generic routines like BlockMove(), which calls a system
vector to a routine that goes to a lot of effort to use MVN/MVP to do a
move between arbitrary addresses.

Todd Whitesel
toddpw @ cco.caltech.edu