64-bit constants in source code
    David Holmes - Sun Microsystems 
    David.Holmes at Sun.COM
       
    Tue Jun 16 05:13:27 PDT 2009
    
    
  
Christian,
According to the definition of the macro you should have used a LL 
suffix not just L.
The macros deal with compiler specific mechanisms for defining 64-bit 
constants. Looks like gcc and SS have converged these days, but Visual 
Studio is quite different:
globalDefinitions_gcc.hpp:#define CONST64(x)  (x ## LL)
globalDefinitions_gcc.hpp:#define UCONST64(x) (x ## ULL)
globalDefinitions_sparcWorks.hpp:#define CONST64(x)  (x ## LL)
globalDefinitions_sparcWorks.hpp:#define UCONST64(x) (x ## ULL)
globalDefinitions_visCPP.hpp:#define CONST64(x)  (x ## i64)
globalDefinitions_visCPP.hpp:#define UCONST64(x) ((uint64_t)CONST64(x))
Cheers,
David Holmes
Christian Thalinger said the following on 06/16/09 21:52:
> Hi!
> 
> Yesterday I noticed that there are compiler specific CONST64 macros 
> which emit the correct syntax for 64-bit constants for the various 
> compilers HotSpot supports.
> 
> Is it recommended/required to use:
> 
> CONST64(0x00000000FFFFFFFF)
> 
> instead of:
> 
> 0x00000000FFFFFFFFL
> 
> (I commited some code lately that uses the later.)
> 
> -- Christian
    
    
More information about the hotspot-dev
mailing list