On 2017-03-17, at 04:44, Martin Ward wrote: > > Given that 2X'FF' generates the same two bytes as X'FFFF', > there is no reason why we should not be allowed to replace > the latter by the former. > I tend more to be value-oriented. The operand of MVHHI is an expression, and it is prudently restricted to the range, [-32768,32767], even as a Y-constant is. Expressions can be EQUated. What should be the meaning of: X EQU 2X'FF' If the value is 65535, that's outside the halfword range and MVHHI A,X should fail, as should DC Y(X)
Don't make too many exceptions to too many rules. One exception I'd like to see removed is, given addressability, LA R1,=D'3.14' works OK, while DC S(=D'3.14') fails. Why should a base-displacement be resolvable in an instruction, but not in an S-constant? The same code should be used and work for both. -- gil