Tue, 29 Jul 2014 13:56:29 +0200
8049043: Load variable through a pointer of an incompatible type in hotspot/src/share/vm/runtime/sharedRuntimeMath.hpp
Summary: Fixed parfait warnings caused by __HI and __LO macros in sharedRuntimeMath.hpp by using a union.
Reviewed-by: kvn
1 #
2 # Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation.
8 #
9 # This code is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 # version 2 for more details (a copy is included in the LICENSE file that
13 # accompanied this code).
14 #
15 # You should have received a copy of the GNU General Public License version
16 # 2 along with this work; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 # or visit www.oracle.com if you need additional information or have any
21 # questions.
22 #
23 #
25 # Resource file containing VERSIONINFO
26 Res_Files=.\version.res
28 !include ..\generated\objfiles.make
30 COMMONSRC=$(WorkSpace)\src
31 ALTSRC=$(WorkSpace)\src\closed
33 !ifdef RELEASE
34 CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT"
35 !else
36 CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT"
37 !endif
39 !if "$(Variant)" == "compiler1"
40 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1"
41 !endif
43 !if "$(Variant)" == "compiler2"
44 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER2"
45 !endif
47 !if "$(Variant)" == "tiered"
48 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" /D "COMPILER2"
49 !endif
51 !if "$(BUILDARCH)" == "i486"
52 HOTSPOT_LIB_ARCH=i386
53 !else
54 HOTSPOT_LIB_ARCH=$(BUILDARCH)
55 !endif
57 # The following variables are defined in the generated local.make file.
58 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
59 CXX_FLAGS=$(CXX_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
60 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\""
61 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
62 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
63 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
65 CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS)
67 # Define that so jni.h is on correct side
68 CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_"
70 !if "$(BUILDARCH)" == "ia64"
71 STACK_SIZE="/STACK:1048576,262144"
72 !else
73 STACK_SIZE=
74 !endif
76 !if "$(BUILDARCH)" == "ia64"
77 # AsyncGetCallTrace is not supported on IA64 yet
78 AGCT_EXPORT=
79 !else
80 AGCT_EXPORT=/export:AsyncGetCallTrace
81 !endif
83 # If you modify exports below please do the corresponding changes in
84 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
85 LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
86 /export:JNI_GetDefaultJavaVMInitArgs \
87 /export:JNI_CreateJavaVM \
88 /export:JVM_FindClassFromBootLoader \
89 /export:JNI_GetCreatedJavaVMs \
90 /export:jio_snprintf \
91 /export:jio_printf \
92 /export:jio_fprintf \
93 /export:jio_vfprintf \
94 /export:jio_vsnprintf \
95 $(AGCT_EXPORT) \
96 /export:JVM_GetVersionInfo \
97 /export:JVM_GetThreadStateNames \
98 /export:JVM_GetThreadStateValues \
99 /export:JVM_InitAgentProperties
101 CXX_INCLUDE_DIRS=/I "..\generated"
103 !if exists($(ALTSRC)\share\vm)
104 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm"
105 !endif
107 !if exists($(ALTSRC)\os\windows\vm)
108 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm"
109 !endif
111 !if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm)
112 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm"
113 !endif
115 !if exists($(ALTSRC)\cpu\$(Platform_arch)\vm)
116 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm"
117 !endif
119 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \
120 /I "$(COMMONSRC)\share\vm" \
121 /I "$(COMMONSRC)\share\vm\precompiled" \
122 /I "$(COMMONSRC)\share\vm\prims" \
123 /I "$(COMMONSRC)\os\windows\vm" \
124 /I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \
125 /I "$(COMMONSRC)\cpu\$(Platform_arch)\vm"
127 CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
129 !if "$(USE_PRECOMPILED_HEADER)" != "0"
130 CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
131 !if "$(COMPILER_NAME)" == "VS2012"
132 # VS2012 requires this object file to be listed:
133 LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj
134 !endif
135 !else
136 CXX_USE_PCH=$(CXX_DONT_USE_PCH)
137 !endif
139 # Where to find the source code for the virtual machine (is this used?)
140 VM_PATH=../generated
141 VM_PATH=$(VM_PATH);../generated/adfiles
142 VM_PATH=$(VM_PATH);../generated/jvmtifiles
143 VM_PATH=$(VM_PATH);../generated/tracefiles
144 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
145 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
146 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code
147 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter
148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci
149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile
150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge
151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared
152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew
153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep
154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1
155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface
156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm
157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops
159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims
160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods
161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime
162 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services
163 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace
164 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities
165 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt
166 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm
167 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm
168 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm
169 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto
171 !if exists($(ALTSRC)\share\vm\jfr)
172 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr
173 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr/buffers
174 !endif
176 VM_PATH={$(VM_PATH)}
178 # Special case files not using precompiled header files.
180 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
181 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
183 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
184 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
186 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
187 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
189 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
190 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
192 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
193 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
195 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
196 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
198 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
199 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
201 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
202 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
204 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
205 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
207 # Default rules for the Virtual Machine
208 {$(COMMONSRC)\share\vm\c1}.cpp.obj::
209 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
211 {$(COMMONSRC)\share\vm\compiler}.cpp.obj::
212 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
214 {$(COMMONSRC)\share\vm\code}.cpp.obj::
215 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
217 {$(COMMONSRC)\share\vm\interpreter}.cpp.obj::
218 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
220 {$(COMMONSRC)\share\vm\ci}.cpp.obj::
221 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
223 {$(COMMONSRC)\share\vm\classfile}.cpp.obj::
224 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
226 {$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
227 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
229 {$(COMMONSRC)\share\vm\gc_implementation\shared}.cpp.obj::
230 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
232 {$(COMMONSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
233 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
235 {$(COMMONSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
236 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
238 {$(COMMONSRC)\share\vm\gc_implementation\g1}.cpp.obj::
239 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
241 {$(COMMONSRC)\share\vm\gc_interface}.cpp.obj::
242 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
244 {$(COMMONSRC)\share\vm\asm}.cpp.obj::
245 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
247 {$(COMMONSRC)\share\vm\memory}.cpp.obj::
248 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
250 {$(COMMONSRC)\share\vm\oops}.cpp.obj::
251 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
253 {$(COMMONSRC)\share\vm\prims}.cpp.obj::
254 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
256 {$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
257 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
259 {$(COMMONSRC)\share\vm\runtime}.cpp.obj::
260 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
262 {$(COMMONSRC)\share\vm\services}.cpp.obj::
263 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
265 {$(COMMONSRC)\share\vm\trace}.cpp.obj::
266 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
268 {$(COMMONSRC)\share\vm\utilities}.cpp.obj::
269 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
271 {$(COMMONSRC)\share\vm\libadt}.cpp.obj::
272 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
274 {$(COMMONSRC)\share\vm\opto}.cpp.obj::
275 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
277 {$(COMMONSRC)\os\windows\vm}.cpp.obj::
278 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
280 # This guy should remain a single colon rule because
281 # otherwise we can't specify the output filename.
282 {$(COMMONSRC)\os\windows\vm}.rc.res:
283 @$(RC) $(RC_FLAGS) /fo"$@" $<
285 {$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
286 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
288 {$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
289 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
291 {$(ALTSRC)\share\vm\c1}.cpp.obj::
292 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
294 {$(ALTSRC)\share\vm\compiler}.cpp.obj::
295 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
297 {$(ALTSRC)\share\vm\code}.cpp.obj::
298 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
300 {$(ALTSRC)\share\vm\interpreter}.cpp.obj::
301 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
303 {$(ALTSRC)\share\vm\ci}.cpp.obj::
304 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
306 {$(ALTSRC)\share\vm\classfile}.cpp.obj::
307 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
309 {$(ALTSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
310 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
312 {$(ALTSRC)\share\vm\gc_implementation\shared}.cpp.obj::
313 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
315 {$(ALTSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
316 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
318 {$(ALTSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
319 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
321 {$(ALTSRC)\share\vm\gc_implementation\g1}.cpp.obj::
322 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
324 {$(ALTSRC)\share\vm\gc_interface}.cpp.obj::
325 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
327 {$(ALTSRC)\share\vm\asm}.cpp.obj::
328 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
330 {$(ALTSRC)\share\vm\memory}.cpp.obj::
331 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
333 {$(ALTSRC)\share\vm\oops}.cpp.obj::
334 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
336 {$(ALTSRC)\share\vm\prims}.cpp.obj::
337 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
339 {$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
340 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
342 {$(ALTSRC)\share\vm\runtime}.cpp.obj::
343 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
345 {$(ALTSRC)\share\vm\services}.cpp.obj::
346 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
348 {$(ALTSRC)\share\vm\trace}.cpp.obj::
349 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
351 {$(ALTSRC)\share\vm\utilities}.cpp.obj::
352 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
354 {$(ALTSRC)\share\vm\libadt}.cpp.obj::
355 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
357 {$(ALTSRC)\share\vm\opto}.cpp.obj::
358 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
360 {$(ALTSRC)\os\windows\vm}.cpp.obj::
361 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
363 # otherwise we can't specify the output filename.
364 {$(ALTSRC)\os\windows\vm}.rc.res:
365 @$(RC) $(RC_FLAGS) /fo"$@" $<
367 {$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
368 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
370 {$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
371 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
373 {..\generated\incls}.cpp.obj::
374 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
376 {..\generated\adfiles}.cpp.obj::
377 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
379 {..\generated\jvmtifiles}.cpp.obj::
380 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
382 {..\generated\tracefiles}.cpp.obj::
383 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
385 {$(ALTSRC)\share\vm\jfr}.cpp.obj::
386 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
388 {$(ALTSRC)\share\vm\jfr\buffers}.cpp.obj::
389 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
391 default::
393 _build_pch_file.obj:
394 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
395 $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
397 !if "$(BUILD_WIN_SA)" != "1"
398 BUILD_VM_DEF_FLAG=-nosa
399 !endif
401 vm.def: $(Obj_Files)
402 sh $(WorkSpace)/make/windows/build_vm_def.sh $(BUILD_VM_DEF_FLAG)