When you code an immediate operand, it has semantics beyond the generated code. 
An operand of -1 is signed and not equivalent to X'FFFF', even though they have 
the same value. The instruction is compare logical half half storage immediate, 
thus the assembler expects the immediate operand to be unsigned. I'd consider 
the message to be appropriate.

Maybe define a symbol with an appropriate and use it in the CLHHSI, e.g.,

HWMINUS1ASUNSIGNED EQU X'FFFF'


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List [[email protected]] on behalf 
of Ed Jaffe [[email protected]]
Sent: Wednesday, December 7, 2022 10:46 AM
To: [email protected]
Subject: CLHHSI TYPECHECK(MAGNITUDE) Annoyance

We decided to replace many SS instructions with their SIL counterparts.
One common case is frustrating.

D501 C01E C020      CLC   HWord,=H'-1'        Is it negative one?
A784 000C           JE    NegOne              Branch if yes

replaced with:

E555 C01E FFFF      CLHHSI HWord,-1           Is it negative one?
A784 000C           JE    NegOne              Branch if yes
** ASMA320W Immediate field operand may have incorrect sign or magnitude
- -1

I totally understand the warning in this case:

E555 C01E FFFF      CLHHSI HWord,131071       Is it negative one?
A784 000C           JE    NegOne              Branch if yes
** ASMA320W Immediate field operand may have incorrect sign or magnitude
- 131071

but I can't understand why -1 generates this warning. The provided value
is validly within the range -32768 through 32767.

We like TYPECHECK(MAGNITUDE) and quite literally assemble tens of
millions of lines of code daily with it enabled and no such warnings are
produced. So we're forced to use ACONTROL like this around this bizarre
case:

                     PUSH  ACONTROL
                     ACONTROL TYPECHECK(NOMAGNITUDE)
E555 C01E FFFF      CLHHSI HWord,-1           Is it negative one?
A784 000C           JE    NegOne              Branch if yes
                     POP   ACONTROL

It seems a ridiculous misunderstanding on the part of the assembler...

--
Phoenix Software International
Edward E. Jaffe
831 Parkview Drive North
El Segundo, CA 90245
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.phoenixsoftware.com%2F&data=05%7C01%7Csmetz3%40gmu.edu%7Cb8e9bc93878545f5d50608dad86a6896%7C9e857255df574c47a0c00546460380cb%7C0%7C0%7C638060248795037186%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=nSiNwQLluMEbqXVV7FtvNW%2BoB3oVZmxt%2BQcNN%2Fmlc7k%3D&reserved=0


--------------------------------------------------------------------------------
This e-mail message, including any attachments, appended messages and the
information contained therein, is for the sole use of the intended
recipient(s). If you are not an intended recipient or have otherwise
received this email message in error, any use, dissemination, distribution,
review, storage or copying of this e-mail message and the information
contained therein is strictly prohibited. If you are not an intended
recipient, please contact the sender by reply e-mail and destroy all copies
of this email message and do not otherwise utilize or retain this email
message or any or all of the information contained therein. Although this
email message and any attachments or appended messages are believed to be
free of any virus or other defect that might affect any computer system into
which it is received and opened, it is the responsibility of the recipient
to ensure that it is virus free and no responsibility is accepted by the
sender for any loss or damage arising in any way from its opening or use.

Reply via email to