> I’m not sure why you’re considering the behavior you’re seeing is an error.
I'm not considering any of the behaviour an error, just the description. Forward moves in overlapping areas work when the destination is lower, not the other way around.
> If it works, great. But XMS 3.0 compliant XMMs are not required to ensure
> that it behaves the way that you are seeing. The spec does not say it will
> not work. My guess is that the XMM you are using has a double buffering
> 0Bh function which makes it safer in this case. I’m sure the concern was
> not requiring XMMs to have such implementations to save on code and memory
> space.
Nitpick: Double buffering isn't required to make backwards moves in overlapping areas work. Just moving from the back to the front, ie high addresses towards lower ones. (To implement moving within overlapping areas that has a lower source than destination, I do actually use a transfer buffer that temporarily holds a chunk of the data. But if a driver itself implements movement, no such buffering is needed.)
Actual reply: I'm not sure what you are talking about. The specification clearly states that only one direction of movement works in overlapping areas. If it is forwards (front to back, low to high) then the destination must be lower, no? --- l |