[8u] RFR: 8149667: Remove dependency on the code specific to Oracle's closed ARM port

Nikolay Gorshkov nikolay at azulsystems.com
Thu Feb 18 13:10:39 UTC 2016


Hi Ed,

The shared code is not perfectly clean - it contains some platform specific 
fragments. Especially this is true for C1 - there are numerous "#ifdef 
$PLATFORM" in its shared portion. The problem is that though some of "#ifdef 
ARM" fragments are applicable to AArch32 port, there are many of them that are 
NOT. Before the proposed fix we had to modify them like "#if defined(ARM) && 
!defined(AARCH32)". Then we decided that it would be much cleaner approach to 
break dependencies on the closed ARM port that is beyond our control. We 
carefully reviewed all "#ifdef ARM" and "#ifdef ARM32" guarded fragments and 
decided whether we do need them or not, modifying the code appropriately. We 
completely agree with the position to avoid modifications of the shared code 
when it is possible and trying to follow this as a policy. Unfortunately, C1 
requires such modifications in one way or another. We've inclined to the way 
that looked more natural to us.

Thanks,
Nikolay

On 18.02.2016 13:38, Edward Nevill wrote:
> Hi Sergey,
>
> I am not clear on the purpose of this patch. What problem does it resolve?
>
> At the moment the build does
>
> -DAARCH32 -DARM
>
> and the decision to do this was made by Joseph and myself specifically to activate those parts of the shared code that are #ifdef ARM? Removing the -DARM means we have to decorate the shared code with #ifdef AARCH32.
>
> I am very keen to avoid modifying shared code if at all possible.
>
> All the best,
> Ed.
>
> On Fri, 2016-02-12 at 10:27 +0000, Sergey Nazarkin wrote:
>> Hi!
>>
>> Please review patch to remove dependency on Oracle’s closed ARM port.
>>
>> Here is the complete list of HotSpot source files that check whether ARM is defined or not defined. '+' means the file was reviewed and changed. '-' means the file was reviewed but it was decides that no changes are needed at this time.
>>
>> + make\linux\platform_aarch32
>> + src\os\linux\vm\os_linux.cpp
>> + src\share\vm\c1\c1_LIR.cpp
>> + src\share\vm\c1\c1_LIR.hpp
>> + src\share\vm\c1\c1_LIRGenerator.cpp
>> + src\share\vm\c1\c1_LinearScan.cpp
>> + src\share\vm\c1\c1_Runtime1.cpp
>> - src\share\vm\interpreter\interpreterRuntime.cpp
>> - src\share\vm\interpreter\interpreterRuntime.hpp
>> - src\share\vm\memory\generation.hpp
>> - src\share\vm\opto\chaitin.cpp
>> - src\share\vm\opto\matcher.cpp
>> + src\share\vm\runtime\arguments.cpp
>> - src\share\vm\utilities\globalDefinitions_gcc.hpp
>> + src\share\vm\utilities\macros.hpp
>>
>> http://cr.openjdk.java.net/~snazarki/8149667/
>>
>>
>> Sergey Nazarkin
>>
>>
>>
>>
>
>


More information about the aarch32-port-dev mailing list