I am not sure why we need the U postfix in the first place. For literal
like ~0xFFF, the compiler should automatically sign-extends to our
expected size. Personally, I prefer to using ([u]intptr_t) ~0xFFF,
which is more portable. So we don't have to deal with U, UL, i64.
It is possible to use 32-bit address mode on 64-bit alpha, and
the address is sign extened, not zero extended.
Hong
> Passes on 64-bit Solaris. (And 32-bit Linux.) Probably more correct
> regardless, as longs are almost always the same size as
> pointers, whereas
> ints aren't.
>
> --- ../parrot/Configure.pl Wed Jan 2 22:53:29 2002
> +++ ./Configure.pl Wed Jan 2 22:53:29 2002
> @@ -141,11 +141,11 @@
> debugging => $opt_debugging,
> rm_f => 'rm -f',
> rm_rf => 'rm -rf',
> - stacklow => '(~0xfff)U',
> - intlow => '(~0xfff)U',
> - numlow => '(~0xfff)U',
> - strlow => '(~0xfff)U',
> - pmclow => '(~0xfff)U',
> + stacklow => '(~0xfff)UL',
> + intlow => '(~0xfff)UL',
> + numlow => '(~0xfff)UL',
> + strlow => '(~0xfff)UL',
> + pmclow => '(~0xfff)UL',
> make => $Config{make},
> make_set_make => $Config{make_set_make},
>
> @@ -701,7 +701,7 @@
> my $vector = unpack("b*", pack("V", $_));
> my $offset = rindex($vector, "1")+1;
> my $mask = 2**$offset - 1;
> - push @returns, "(~0x".sprintf("%x", $mask)."U)";
> + push @returns, "(~0x".sprintf("%x", $mask)."UL)";
> }
>
> return @returns;
>
>
>
> --
> Bryan C. Warnock
> [EMAIL PROTECTED]
>