is there any word processing software for the pdp11?
Jon Elson
elson at pico-systems.com
Thu Dec 4 21:12:38 CST 2014
On 12/04/2014 03:50 PM, Peter Corlett wrote:
> On Tue, Dec 02, 2014 at 03:32:38PM -0800, Fred Cisin wrote:
>> . . .
>>>>> long long int A;
>>>>> int B;
>>>>> A = B << 32;
> [...]
>> So, should the compiler optimize that to
>> MOV X,0
>> or
>> NOP
>> ?
> That basically depends on what "long long" and "int" means :)
>
> The C99 (draft) standard says of << and >> that "[t]he behavior is undefined if
> the right operand is negative, or greater than or equal to the length in bits
> of the promoted left operand"
Well, that's the problem! The destination was 64 bits, the
operand was 32 bits.
if the 32-bit operand got promoted to 64-bits, it would have
worked as the
original programmer intended. But, the whole operation was
done at 32 bits,
and the desired bits fell off the end. I thought that C did
NOT promote smaller
operands, so the behavior was actually expected, once I saw
what was really
going on there.
Jon
More information about the cctech
mailing list