Thank you Rodolph! Does that mean we can "downgrade" the requirement for all VFP instructions used in V8 to VFPv2 except for vmov(const DwVfpRegister, double imm, const Condition) ? That would help Chromium on Raspberry Pi a lot.
Yang On Mon, Jul 23, 2012 at 12:45 PM, Rodolph Perfetta < [email protected]> wrote: > The main difference between VFPv2 and VFPv3 are: > * deprecated vector mode > * new instructions: vmov immediate and conversion with fixed point. > * VFPv3 has an option to have 32 double registers > > V8 assumes 16 D registers, never used the vector mode or conversion to > fixed point. As far as I can see the only missing feature from VFPv2 > used by V8 is the vmov immediate instruction. > > Also you can have hardfp ABI and VPv2. > > On 23 July 2012 08:21, <[email protected]> wrote: > > Some comments. Adding Sven for more opinions. Generally, this patch > opens up > > a > > bunch of questions, and I'm not familiar enough with ARM to answer all of > > these: > > - Do we support crankshaft for VFPv2 already, or only for VFPv3? > > - Is there a documentation with a full list of what instructions are > > available > > on VFPv3 and not on VFPv2? > > - Have the assertions in all VFP instructions been consequently updated > to > > the > > correct requirement (VFPv2 or VFPv3)? Or is this only the first of many > CLs? > > > > > > > https://chromiumcodereview.appspot.com/10796069/diff/1/src/arm/assembler-arm.cc > > File src/arm/assembler-arm.cc (right): > > > > > https://chromiumcodereview.appspot.com/10796069/diff/1/src/arm/assembler-arm.cc#newcode1748 > > src/arm/assembler-arm.cc:1748: ASSERT(CpuFeatures::IsEnabled(VFP3) || > > CpuFeatures::IsEnabled(VFP2)); > > it seems to me that VFP3 is a superset of VFP2, VSTR is part of VFP2 and > > CpuFeatures::IsEnabled(VFP3) implies CpuFeatures::IsEnabled(VFP3). So I > > would like to suggest removing the redundant > > CpuFeatures::IsEnabled(VFP3). > > > > > https://chromiumcodereview.appspot.com/10796069/diff/1/src/arm/assembler-arm.cc#newcode2020 > > src/arm/assembler-arm.cc:2020: ASSERT(CpuFeatures::IsEnabled(VFP3)); > > From what I found, this is also available for VFPv2? > > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CJAEFGHE.html > > > > > https://chromiumcodereview.appspot.com/10796069/diff/1/src/arm/assembler-arm.cc#newcode2034 > > src/arm/assembler-arm.cc:2034: ASSERT(CpuFeatures::IsEnabled(VFP3) || > > CpuFeatures::IsEnabled(VFP2)); > > Ditto. > > > > > https://chromiumcodereview.appspot.com/10796069/diff/1/src/arm/assembler-arm.cc#newcode2049 > > src/arm/assembler-arm.cc:2049: ASSERT(CpuFeatures::IsEnabled(VFP3)); > > Ditto. Also enable for VFP2? > > > > https://chromiumcodereview.appspot.com/10796069/ > > > > > > -- > > v8-dev mailing list > > [email protected] > > http://groups.google.com/group/v8-dev > > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
