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