Thanks, Gabe! On Tue, Mar 15, 2022 at 9:28 PM Gabe Black via gem5-dev <gem5-dev@gem5.org> wrote:
> https://gem5-review.googlesource.com/c/public/gem5/+/57749 > > On Tue, Mar 15, 2022 at 12:59 PM Gabe Black <gabe.bl...@gmail.com> wrote: > >> It looks like the problem is that the aapcs test calls ThreadContext >> which returns a TheISA::VecRegContainer, where since that test is for ARM >> it *should* really be working with an ARM VecRegContainer. Because this is >> being built for NULL, that uses the dummy versions which are not complete >> enough to have "as" template methods like the real classes. >> >> I think the solution is either to restrict that test to when building >> with ARM, or to add as<>() to the dummy classes. In the short term the >> offending change can be reverted, or we can wait until this evening when >> I'll have a chance to find a proper fix. This is what is right now probably >> a unique corner case where we have a unit test which is ISA dependent, and >> while it will *become* possible to run reasonably under any build once the >> ThreadContext doesn't build in what data type vector registers should be, >> in the mean time it either won't work because of this problem, or even when >> it would work, it would be operating on an inappropriate data type. >> >> Gabe >> >> On Tue, Mar 15, 2022 at 8:13 AM Jason Lowe-Power <ja...@lowepower.com> >> wrote: >> >>> Looks like the problem is [gabe.black] arch: Make the DummyVec... types >>> the same size as RegVal. >>> >>> Can you take a look, Gabe? >>> >>> Thanks, >>> Jason >>> >>> On Tue, Mar 15, 2022 at 1:46 AM jenkins-no-reply--- via gem5-dev < >>> gem5-dev@gem5.org> wrote: >>> >>>> See < >>>> https://jenkins.gem5.org/job/nightly/161/display/redirect?page=changes> >>>> >>>> Changes: >>>> >>>> [gabe.black] arch-x86: Fix a bug in the protected mode IRET. >>>> >>>> [gabe.black] arch-x86: Fix writing back 32 bit PTEs in the walker. >>>> >>>> [gabe.black] arch-x86: Detect when entering virtual 8086 mode. >>>> >>>> [gabe.black] arch-x86: Tidy up the page table walker stepWalk method. >>>> >>>> [gabe.black] arch-x86: Use the right bits in the page table walker. >>>> >>>> [gabe.black] arch-x86: Make the flags microops handle reserved bits >>>> better. >>>> >>>> [matthew.poremba] sim-se: Initialize shared page table base upon clone >>>> >>>> [Bobby R. Bruce] util-docker: Adding docker-compose.yaml >>>> >>>> [Bobby R. Bruce] tests,util-docker: Add clang-12 to the compiler tests >>>> >>>> [Bobby R. Bruce] util: Remove util/cloudbuild >>>> >>>> [gabe.black] dev,arch-x86: Make the I8042 reset settings more realistic. >>>> >>>> [gabe.black] dev,arch-x86: Implement some self test 8042 commands. >>>> >>>> [gabe.black] scons: Process the SConsopts files for each variant. >>>> >>>> [gabe.black] scons: Turn a lot of compiler flag vars into env vars. >>>> >>>> [gabe.black] arch-x86: Fix the SAHF and LAHF instructions. >>>> >>>> [gabe.black] arch: Make the DummyVec... types the same size as RegVal. >>>> >>>> [gabe.black] ext,scons: Make kconfiglib available for use in SCons. >>>> >>>> [gabe.black] scons: Make all sticky variables automatically exported. >>>> >>>> [gabe.black] dev: Implement PS/2 keyboard echo and set scan code >>>> commands. >>>> >>>> [gabe.black] arch-x86: Specialize some instructions for virtual 8086 >>>> mode. >>>> >>>> >>>> ------------------------------------------ >>>> [...truncated 1.17 MB...] >>>> [ RUN ] LoggingFixture.Warn >>>> [ OK ] LoggingFixture.Warn (0 ms) >>>> [ RUN ] LoggingFixture.Inform >>>> [ OK ] LoggingFixture.Inform (0 ms) >>>> [ RUN ] LoggingFixture.Hack >>>> [ OK ] LoggingFixture.Hack (0 ms) >>>> [ RUN ] LoggingFixture.WarnOnce >>>> [ OK ] LoggingFixture.WarnOnce (0 ms) >>>> [ RUN ] LoggingFixture.InformOnce >>>> [ OK ] LoggingFixture.InformOnce (0 ms) >>>> [ RUN ] LoggingFixture.HackOnce >>>> [ OK ] LoggingFixture.HackOnce (0 ms) >>>> [ RUN ] LoggingFixture.WarnIf >>>> [ OK ] LoggingFixture.WarnIf (0 ms) >>>> [ RUN ] LoggingFixture.WarnIfOnce >>>> [ OK ] LoggingFixture.WarnIfOnce (0 ms) >>>> [----------] 21 tests from LoggingFixture (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 34 tests from 2 test suites ran. (1638 ms total) >>>> [ PASSED ] 34 tests. >>>> [ LINK] -> NULL/arch/generic/vec_pred_reg.test.opt >>>> build/NULL/arch/generic/vec_reg.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/arch/generic/vec_reg.test.xml >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 8 tests from 2 test suites. >>>> [----------] Global test environment set-up. >>>> [----------] 2 tests from VecReg >>>> [ RUN ] VecReg.Size >>>> [ OK ] VecReg.Size (0 ms) >>>> [ RUN ] VecReg.Zero >>>> [ OK ] VecReg.Zero (0 ms) >>>> [----------] 2 tests from VecReg (0 ms total) >>>> >>>> [----------] 6 tests from TwoDifferentVecRegs >>>> [ RUN ] TwoDifferentVecRegs.Assignment >>>> [ OK ] TwoDifferentVecRegs.Assignment (0 ms) >>>> [ RUN ] TwoDifferentVecRegs.Equality >>>> [ OK ] TwoDifferentVecRegs.Equality (0 ms) >>>> [ RUN ] TwoDifferentVecRegs.Inequality >>>> [ OK ] TwoDifferentVecRegs.Inequality (0 ms) >>>> [ RUN ] TwoDifferentVecRegs.Printing >>>> [ OK ] TwoDifferentVecRegs.Printing (0 ms) >>>> [ RUN ] TwoDifferentVecRegs.ParseParam >>>> [ OK ] TwoDifferentVecRegs.ParseParam (0 ms) >>>> [ RUN ] TwoDifferentVecRegs.ShowParam >>>> [ OK ] TwoDifferentVecRegs.ShowParam (0 ms) >>>> [----------] 6 tests from TwoDifferentVecRegs (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 8 tests from 2 test suites ran. (0 ms total) >>>> [ PASSED ] 8 tests. >>>> [SO Param] m5.objects.SimObject, SimObject -> NULL/params/SimObject.hh >>>> [ENUMDECL] m5.objects.StaticInstFlags, StaticInstFlags -> >>>> NULL/enums/StaticInstFlags.hh >>>> [ENUMDECL] m5.objects.FuncUnit, OpClass -> NULL/enums/OpClass.hh >>>> [ENUMDECL] m5.objects.SimObject, ByteOrder -> NULL/enums/ByteOrder.hh >>>> build/NULL/arch/generic/vec_pred_reg.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/arch/generic/vec_pred_reg.test.xml >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 14 tests from 3 test suites. >>>> [----------] Global test environment set-up. >>>> [----------] 2 tests from VecPredReg >>>> [ RUN ] VecPredReg.reset >>>> [ OK ] VecPredReg.reset (0 ms) >>>> [ RUN ] VecPredReg.set >>>> [ OK ] VecPredReg.set (0 ms) >>>> [----------] 2 tests from VecPredReg (0 ms total) >>>> >>>> [----------] 9 tests from TwoDifferentVecPredRegs >>>> [ RUN ] TwoDifferentVecPredRegs.Assignment >>>> [ OK ] TwoDifferentVecPredRegs.Assignment (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.Equality >>>> [ OK ] TwoDifferentVecPredRegs.Equality (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.Inequality >>>> [ OK ] TwoDifferentVecPredRegs.Inequality (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.Printing >>>> [ OK ] TwoDifferentVecPredRegs.Printing (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.ParseParam >>>> [ OK ] TwoDifferentVecPredRegs.ParseParam (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.ShowParam >>>> [ OK ] TwoDifferentVecPredRegs.ShowParam (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.View8bit >>>> [ OK ] TwoDifferentVecPredRegs.View8bit (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.View16bit >>>> [ OK ] TwoDifferentVecPredRegs.View16bit (0 ms) >>>> [ RUN ] TwoDifferentVecPredRegs.View32bit >>>> [ OK ] TwoDifferentVecPredRegs.View32bit (0 ms) >>>> [----------] 9 tests from TwoDifferentVecPredRegs (0 ms total) >>>> >>>> [----------] 3 tests from TwoPackedDifferentVecPredRegs >>>> [ RUN ] TwoPackedDifferentVecPredRegs.View8bit >>>> [ OK ] TwoPackedDifferentVecPredRegs.View8bit (0 ms) >>>> [ RUN ] TwoPackedDifferentVecPredRegs.View16bit >>>> [ OK ] TwoPackedDifferentVecPredRegs.View16bit (0 ms) >>>> [ RUN ] TwoPackedDifferentVecPredRegs.View32bit >>>> [ OK ] TwoPackedDifferentVecPredRegs.View32bit (0 ms) >>>> [----------] 3 tests from TwoPackedDifferentVecPredRegs (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 14 tests from 3 test suites ran. (0 ms total) >>>> [ PASSED ] 14 tests. >>>> [ CXX] NULL/arch/arm/aapcs64.test.cc -> .to >>>> build/NULL/sim/bufval.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/sim/bufval.test.xml >>>> build/NULL/sim/byteswap.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/sim/byteswap.test.xml >>>> build/NULL/base/pixel.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/base/pixel.test.xml >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 12 tests from 4 test suites. >>>> [----------] Global test environment set-up. >>>> [----------] 3 tests from GetUintX >>>> [ RUN ] GetUintX.BadSize >>>> [ OK ] GetUintX.BadSize (0 ms) >>>> [ RUN ] GetUintX.LittleEndian >>>> [ OK ] GetUintX.LittleEndian (0 ms) >>>> [ RUN ] GetUintX.BigEndian >>>> [ OK ] GetUintX.BigEndian (0 ms) >>>> [----------] 3 tests from GetUintX (0 ms total) >>>> >>>> [----------] 3 tests from SetUintX >>>> [ RUN ] SetUintX.BadSize >>>> [ OK ] SetUintX.BadSize (0 ms) >>>> [ RUN ] SetUintX.LittleEndian >>>> [ OK ] SetUintX.LittleEndian (0 ms) >>>> [ RUN ] SetUintX.BigEndian >>>> [ OK ] SetUintX.BigEndian (0 ms) >>>> [----------] 3 tests from SetUintX (0 ms total) >>>> >>>> [----------] 3 tests from PrintUintX >>>> [ RUN ] PrintUintX.BadSize >>>> [ OK ] PrintUintX.BadSize (0 ms) >>>> [ RUN ] PrintUintX.LittleEndian >>>> [ OK ] PrintUintX.LittleEndian (0 ms) >>>> [ RUN ] PrintUintX.BigEndian >>>> [ OK ] PrintUintX.BigEndian (0 ms) >>>> [----------] 3 tests from PrintUintX (0 ms total) >>>> >>>> [----------] 3 tests from PrintByteBuf >>>> [ RUN ] PrintByteBuf.LittleEndian >>>> [ OK ] PrintByteBuf.LittleEndian (0 ms) >>>> [ RUN ] PrintByteBuf.BigEndian >>>> [ OK ] PrintByteBuf.BigEndian (0 ms) >>>> [ RUN ] PrintByteBuf.ChunkSize >>>> [ OK ] PrintByteBuf.ChunkSize (0 ms) >>>> [----------] 3 tests from PrintByteBuf (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 12 tests from 4 test suites ran. (0 ms total) >>>> [ PASSED ] 12 tests. >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 8 tests from 1 test suite. >>>> [----------] Global test environment set-up. >>>> [----------] 8 tests from ByteswapTest >>>> [ RUN ] ByteswapTest.swap_byte64 >>>> [ OK ] ByteswapTest.swap_byte64 (0 ms) >>>> [ RUN ] ByteswapTest.swap_byte32 >>>> [ OK ] ByteswapTest.swap_byte32 (0 ms) >>>> [ RUN ] ByteswapTest.swap_byte16 >>>> [ OK ] ByteswapTest.swap_byte16 (0 ms) >>>> [ RUN ] ByteswapTest.swap_byte >>>> [ OK ] ByteswapTest.swap_byte (0 ms) >>>> [ RUN ] ByteswapTest.htog >>>> [ OK ] ByteswapTest.htog (0 ms) >>>> [ RUN ] ByteswapTest.gtoh >>>> [ OK ] ByteswapTest.gtoh (0 ms) >>>> [ RUN ] ByteswapTest.betole >>>> [ OK ] ByteswapTest.betole (0 ms) >>>> [ RUN ] ByteswapTest.letobe >>>> [ OK ] ByteswapTest.letobe (0 ms) >>>> [----------] 8 tests from ByteswapTest (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 8 tests from 1 test suite ran. (0 ms total) >>>> [ PASSED ] 8 tests. >>>> build/NULL/base/socket.test.opt >>>> --gtest_output=xml:build/NULL/unittests.opt/base/socket.test.xml >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 5 tests from 1 test suite. >>>> [----------] Global test environment set-up. >>>> [----------] 5 tests from FBTest >>>> [ RUN ] FBTest.PixelConversionRGBA8888 >>>> [ OK ] FBTest.PixelConversionRGBA8888 (0 ms) >>>> [ RUN ] FBTest.PixelConversionRGB565 >>>> [ OK ] FBTest.PixelConversionRGB565 (0 ms) >>>> [ RUN ] FBTest.PixelToMemRGBA8888LE >>>> [ OK ] FBTest.PixelToMemRGBA8888LE (0 ms) >>>> [ RUN ] FBTest.MemToPixelRGBA8888LE >>>> [ OK ] FBTest.MemToPixelRGBA8888LE (0 ms) >>>> [ RUN ] FBTest.MemToPixelRGBA8888BE >>>> [ OK ] FBTest.MemToPixelRGBA8888BE (0 ms) >>>> [----------] 5 tests from FBTest (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 5 tests from 1 test suite ran. (0 ms total) >>>> [ PASSED ] 5 tests. >>>> Running main() from >>>> build/NULL/ext/googletest/googletest/src/gtest_main.cc >>>> [==========] Running 9 tests from 1 test suite. >>>> [----------] Global test environment set-up. >>>> [----------] 9 tests from SocketTest >>>> [ RUN ] SocketTest.DefaultBehavior >>>> [ OK ] SocketTest.DefaultBehavior (0 ms) >>>> [ RUN ] SocketTest.DisableAll >>>> [ OK ] SocketTest.DisableAll (0 ms) >>>> [ RUN ] SocketTest.ListenToPort >>>> [ OK ] SocketTest.ListenToPort (0 ms) >>>> [ RUN ] SocketTest.ListenToPortReuseFalse >>>> [ OK ] SocketTest.ListenToPortReuseFalse (0 ms) >>>> [ RUN ] SocketTest.RelistenWithSameInstanceSamePort >>>> build/NULL/base/socket.cc:125: panic: Socket already listening! >>>> build/NULL/base/socket.cc:125: panic: Socket already listening! >>>> [ OK ] SocketTest.RelistenWithSameInstanceSamePort (0 ms) >>>> [ RUN ] SocketTest.RelistenWithSameInstanceDifferentPort >>>> [ OK ] SocketTest.RelistenWithSameInstanceDifferentPort (0 ms) >>>> [ RUN ] SocketTest.RelistenWithDifferentInstanceOnDifferentPort >>>> [ OK ] SocketTest.RelistenWithDifferentInstanceOnDifferentPort (0 >>>> ms) >>>> [ RUN ] SocketTest.RelistenWithDifferentInstanceOnSamePort >>>> [ OK ] SocketTest.RelistenWithDifferentInstanceOnSamePort (0 ms) >>>> [ RUN ] SocketTest.AcceptError >>>> [ OK ] SocketTest.AcceptError (0 ms) >>>> [----------] 9 tests from SocketTest (0 ms total) >>>> >>>> [----------] Global test environment tear-down >>>> [==========] 9 tests from 1 test suite ran. (0 ms total) >>>> [ PASSED ] 9 tests. >>>> In file included from build/NULL/arch/arm/aapcs64.test.cc:30: >>>> build/NULL/arch/arm/aapcs64.hh: In static member function 'static Float >>>> gem5::guest_abi::Argument<gem5::Aapcs64, Float, typename >>>> std::enable_if<(is_floating_point_v<Float> || >>>> IsAapcs64ShortVectorV<Float>), void>::type>::get(gem5::ThreadContext*, >>>> gem5::Aapcs64::State&)': >>>> build/NULL/arch/arm/aapcs64.hh:205:39: error: 'using VecRegContainer = >>>> struct gem5::DummyVecRegContainer' {aka 'struct >>>> gem5::DummyVecRegContainer'} has no member named 'as' >>>> 205 | return tc->readVecReg(id).as<Float>()[0]; >>>> | ^~ >>>> build/NULL/arch/arm/aapcs64.hh:205:47: error: expected >>>> primary-expression before '>' token >>>> 205 | return tc->readVecReg(id).as<Float>()[0]; >>>> | ^ >>>> build/NULL/arch/arm/aapcs64.hh:205:49: error: expected >>>> primary-expression before ')' token >>>> 205 | return tc->readVecReg(id).as<Float>()[0]; >>>> | ^ >>>> build/NULL/arch/arm/aapcs64.hh: In static member function 'static void >>>> gem5::guest_abi::Result<gem5::Aapcs64, Float, typename >>>> std::enable_if<(is_floating_point_v<Float> || >>>> IsAapcs64ShortVectorV<Float>), void>::type>::store(gem5::ThreadContext*, >>>> const Float&)': >>>> build/NULL/arch/arm/aapcs64.hh:221:13: error: 'struct >>>> gem5::DummyVecRegContainer' has no member named 'as' >>>> 221 | reg.as<Float>()[0] = f; >>>> | ^~ >>>> build/NULL/arch/arm/aapcs64.hh:221:21: error: expected >>>> primary-expression before '>' token >>>> 221 | reg.as<Float>()[0] = f; >>>> | ^ >>>> build/NULL/arch/arm/aapcs64.hh:221:23: error: expected >>>> primary-expression before ')' token >>>> 221 | reg.as<Float>()[0] = f; >>>> | ^ >>>> scons: *** [build/NULL/arch/arm/aapcs64.test.to] Error 1 >>>> scons: building terminated because of errors. >>>> *** Summary of Warnings *** >>>> Warning: Deprecated namespaces are not supported by this compiler. >>>> Please make sure to check the mailing list for deprecation >>>> announcements. >>>> Build step 'Execute shell' marked build as failure >>>> Archiving artifacts >>>> Recording plot data >>>> _______________________________________________ >>>> gem5-dev mailing list -- gem5-dev@gem5.org >>>> To unsubscribe send an email to gem5-dev-le...@gem5.org >>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>>> >>> _______________________________________________ > gem5-dev mailing list -- gem5-dev@gem5.org > To unsubscribe send an email to gem5-dev-le...@gem5.org > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________ gem5-dev mailing list -- gem5-dev@gem5.org To unsubscribe send an email to gem5-dev-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s