Super-H machine language issues
der Mouse <[email protected]> Thu, 28 Oct 2010 22:56:11 -0400 (EDT)
| Newsgroups | gmane.os.netbsd.ports.dreamcast |
|---|---|
| Message-ID | <[email protected]> |
I've been messing with dreamcast stuff, and in particular I was preparing to build assembly-/machine-level tools. In aid of this, I went through the Hitachi reference document (h14tp003d2.pdf) as linked to by Marcus Comstedt's webpages. There are a number of floating-point instructions which appear to me to be ambiguous. For example, page 271 says (slightly reformatted) FMOV.S FRm,@(R0,Rn) 1111nnnnmmmm0111 but page 275 says (ditto) FMOV XDm,@(R0,Rn) 1111nnnnmmm10111 The first is valid only when SZ is 0 and the latter when PR is 1, but I see no reason those can't both be true at the same time - and the functionality of those two instructions is not the same. (They store to the same address, but they store different amounts of data and they get the data to be stored from different registers.) I can't believe the hardware reads the programmer's mind to divine the intent of the code, leaving me wondering. This is just an example. There are at least a few more such cases; I'll be doing an exhaustive mechanized search. (I found these because I was doing an automated search for conflicts to catch typos and was surprised to find that this one, found by eyeballing a preliminary list, appeared to not be a typo - or at least not *my* typo.) So, is one of those a mistake, and I should be using something else as my reference? Or am I missing something here? Or what? /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML [email protected] / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B