RFR: aarch32: softfp patch for template interpreter
yangyongyong
yangyongyong at huawei.com
Wed Oct 19 11:22:54 UTC 2016
Hi, Chi Vo
Sorry I do not have any specific plan right now.
Since we now support configuration 1 and 3, to support case 2 is not much trouble. I will figure it out as soon as I have got the time.
Best wishes.
From: Chi Vo (The Geek) [mailto:thegeek108 at gmail.com]
Sent: Wednesday, October 19, 2016 7:08 PM
To: yangyongyong; aarch32-port-dev at openjdk.java.net
Subject: Re: RFR: aarch32: softfp patch for template interpreter
Hi Yang,
You are right. My compiler downloaded from Linaro is exactly case 2. (This is my target need).
Now, I success build with compiler option "-mfloat-abi=soft".
Do you have any plan for support case 2 as mentioned before?
Thanks & Best Regards,
Chi Vo
Sent from my BlackBerry 10 smartphone.
From: yangyongyong
Sent: Wednesday, October 19, 2016 17:12
To: Chi Vo (The Geek); aarch32-port-dev at openjdk.java.net<mailto:aarch32-port-dev at openjdk.java.net>
Subject: RE: RFR: aarch32: softfp patch for template interpreter
Hi, Chi Vo,
Please check your gcc with “echo | gcc -E -dM - | grep -rni soft” , make sure “#define __SOFTFP__ 1” exists.
As mentioned earlier, there are 3 configurations for arm platform (refer to globalDefinitions_aarch32.hpp after you patch the code),
1. HARD_FLOAT/ HARD_FLOAT_CC are defined when __ARM_PCS_VFP is defined.
2. HARD_FLOAT/ SOFT_FLOAT_CC are defined when gcc runs with "-mfloat-abi=softfp" option.
3. SOFT_FLOAT/ SOFT_FLOAT_CC when gcc runs with "-mfloat-abi=soft" option.
If __SOFTFP__ is not defined for your compiler, then your arm platform would probably be case 2 listed above which still needs a little adjustment and is not fully functional right now. So far as I know, the softfp toolchain downloaded at linaro is exactly this case. Note that in this case, arm platform can still use hardfp instructions (i.e., VFP), just the arguments for function calls are passed via general purpose registers.
BTW, we should better send a copy of our discussion to aarch32-port-dev at openjdk.java.net<mailto:aarch32-port-dev at openjdk.java.net> in case some one else is also interested.
Best regards.
From: Chi Vo (The Geek) [mailto:thegeek108 at gmail.com]
Sent: Wednesday, October 19, 2016 5:37 PM
To: yangyongyong
Subject: Re: RFR: aarch32: softfp patch for template interpreter
Hi Mr.Yang,
I have a problem with that configurations “--with-jvm-variants=core and --with-jvm-interpreter=template”.
Below is detail compile error log:
aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp: In member function 'void MacroAssembler::kernel_crc32(Register, Register, Register, Register, Register, Register, Register, Register, Register, Register)':
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3384:27: error: 'crc32w' was not declared in this scope
crc32w(crc, crc, tmp);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3391:27: error: 'crc32b' was not declared in this scope
crc32b(crc, crc, tmp);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3432:38: error: 'ALIGN_128' is not a member of 'Assembler'
vld1_64(d0, d1, post(buf, 16), Assembler::ALIGN_128);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3432:58: error: 'vld1_64' was not declared in this scope
vld1_64(d0, d1, post(buf, 16), Assembler::ALIGN_128);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3433:33: error: 'ALIGN_64' is not a member of 'Assembler'
vld1_64(d4, post(tmp, 8), Assembler::ALIGN_64);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3434:33: error: 'ALIGN_64' is not a member of 'Assembler'
vld1_64(d5, post(tmp, 8), Assembler::ALIGN_64);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3435:33: error: 'ALIGN_64' is not a member of 'Assembler'
vld1_64(d6, post(tmp, 8), Assembler::ALIGN_64);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3436:33: error: 'ALIGN_64' is not a member of 'Assembler'
vld1_64(d7, post(tmp, 8), Assembler::ALIGN_64);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3437:28: error: 'veor_64' was not declared in this scope
veor_64(d16, d16, d16);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3438:26: error: 'vmov_32' was not declared in this scope
vmov_32(d16, 0, crc);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3444:26: error: 'vmullp_8' was not declared in this scope
vmullp_8(q8, d0, d5);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3454:25: error: 'vuzp_128_16' was not declared in this scope
vuzp_128_16(q9, q8);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3455:26: error: 'veor_128' was not declared in this scope
veor_128(q8, q8, q9);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3460:27: error: 'vshll_16u' was not declared in this scope
vshll_16u(q9, d16, 8);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3474:29: error: 'vshll_32u' was not declared in this scope
vshll_32u(q13, d18, 16);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3483:30: error: 'vshl_128_64' was not declared in this scope
vshl_128_64(q15, q15, 1);
^
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/cpu/aarch32/vm/macroAssembler_aarch32.cpp:3484:38: error: 'ALIGN_128' is not a member of 'Assembler'
vld1_64(d0, d1, post(buf, 16), Assembler::ALIGN_128);
^
Compiling /home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/src/share/vm/oops/markOop.cpp
/home/chi/workspace/openjdk/mitsuojdk/02.src/01.aarch32_jdk8u/hotspot/make/linux/makefiles/rules.make:157: recipe for target 'macroAssembler_aarch32.o' failed
make[6]: *** [macroAssembler_aarch32.o] Error 1
Its seems ARM A64 General Instructions. My target is ARMv7 with SOFTFP. What is goes wrong with my setup and configurations?
Thanks & Best Regards,
Chi Vo
Sent from my BlackBerry 10 smartphone.
From: yangyongyong
Sent: Wednesday, October 19, 2016 16:10
To: Chi Vo (The Geek)
Subject: RE: RFR: aarch32: softfp patch for template interpreter
Hi, Chi Vo,
My local configuration is “--with-jvm-variants=core and --with-jvm-interpreter=template”.
Regards.
From: Chi Vo (The Geek) [mailto:thegeek108 at gmail.com]
Sent: Wednesday, October 19, 2016 3:06 PM
To: yangyongyong
Subject: Re: RFR: aarch32: softfp patch for template interpreter
Hi Mr.Yang,
Could you please provide your configuration to build success with yours patch.
Currently, I am unsuccessful to build jdk8u with option --with-jvm-variants=zero and --with-jvm-interpreter=template
Thanks & Best Regards,
Chi Vo
Sent from my BlackBerry 10 smartphone.
From: Chi Vo (The Geek)
Sent: Wednesday, October 19, 2016 12:47
To: yangyongyong
Subject: Re: RFR: aarch32: softfp patch for template interpreter
Hi Mr.Yang,
Thank you very much for your quick reply.
Best Regards,
Chi Vo
Sent from my BlackBerry 10 smartphone.
From: yangyongyong
Sent: Wednesday, October 19, 2016 12:05
To: Chi Vo (The Geek)
Subject: RE: RE:RFR: aarch32: softfp patch for template interpreter
Hi, Chi Vo
Please refer to the attachment.
It seems email addresses at huawei.com do not work well with openjdk mailing list, the reason is still unknown, and I am sorry for that.
Let me know if anything goes wrong with the attachment.
Best regards.
From: Chi Vo (The Geek) [mailto:thegeek108 at gmail.com]
Sent: Wednesday, October 19, 2016 12:42 PM
To: yangyongyong
Subject: RE:RFR: aarch32: softfp patch for template interpreter
Hi Mr.Yang,
Could you please help me to attach the patch for this email. I do not see the attached file in this email.
Thanks & Best Regards,
Chi Vo
Sent from my BlackBerry 10 smartphone.
More information about the aarch32-port-dev
mailing list