On Thu, Oct 29, 2009 at 16:32, Alexandre Rames <[email protected]> wrote: > I have been working on actual MIPS boards; I have no MIPS simulator and I > don't think I really have time to code one right now. > Wouldn't it be possible to run v8 with qemu?
Alexandre, While it might seem like extra work to write the simulator now, it is actually much better for the maintainer of the MIPS port (you?) if others can develop and run your code on their main machines without have to resort to things like qemu. I do hope that you are implementing a disassembler so that you can see the code you are generating, the incremental step from the disassembler to the simulator is minimal. As you can see when comparing the ARM simulator to the ARM disassembler in V8 they share a lot of the structure and the implementation of the simulator was very incremental as more code came online. In an ideal situation your MIPS assembler would use the same set of constants and accessors as the disassembler/simulator when encoding the instructions. Only due to historical reasons the ARM assembler in V8 does not. Another nice benefit of having the simulator while bringing up V8 on a new architecture is the access to the builtin debugger. if you take a look at the debugging support in the ARM simulator, it enables you to call helper functions in the runtime which is generally almost impossible in any of the embedded tool chains. I find that many developers (including me) will not bother to run any of the tests on foreign architectures if the development is not easily integrated into their development tools and workflow. Maintaining a bootable qemu image is very much past that threshold and your MIPS implementation will suffer from a lack of attention as did the ARM implementation of V8 before we had a simulator. Additionally, this might surprise you, is the fact that the regression test suite completes faster on the simulator than on actual ARM hardware. This is due to the fact that most of the time running the regression test suite is spent in C++ code which executes at native x86 speeds when run with the ARM simulator. For a developer this is a huge advantage as the turn around time is a lot quicker. As far as I understand this is still way down the road for you at this point, but it is a point to consider. Cheers, -Ivan > > On Thu, Oct 29, 2009 at 2:01 PM, Erik Corry <[email protected]> wrote: >> >> 2009/10/29 A.Rames <[email protected]>: >> > >> > Hi, >> > >> > I am ready to contribute the first MIPS patch. >> > I gave the Corporate Contributor License Agreement to my manager and >> > should send it soon. >> > >> > I have 2 questions before contributing: >> > >> > * As this is a patch to begin v8 port to MIPS, I don't know at all who >> > should review this code. Should I just ask a review at chromium- >> > [email protected] ? >> >> Better to send it to someone specific. Perhaps me or >> [email protected]. If we don't have time we can find someone else to >> do it. I hope you have gcl (the client for codereview.chromium.org) >> running. >> >> > * I am currently working on the port and would like to submit some >> > specific part of my work, which I think are advanced enough. For the >> > first patch I'd like to give the assembler-mips files and the very few >> > modification to architecture independent code (mainly pre-processor >> > architecture checks to include the right files, and one change about >> > memory alignment on MIPS). >> > However I guess it would be nice for you to have other mips files, so >> > that you can build the shell and easily test the mips assembler. As I >> > am working on it these are unluckily not very clean, with a lots of >> > stubs and partly implemented functions. >> > I prepared a version of the code with very clean assembler-mips files, >> > and with the JSEntryStub::GenerateBody function just containing a Jump >> > (ra) to return to v8 code, which could be used to generate code and >> > test it if you need to. >> > So do you want me to send you all files or only files needing review? >> >> I'd like to see a minimal subset that can actually compile. It >> doesn't matter that it doesn't run, and it doesn't matter that there >> are stubbed out functions. I'd like to see some tests that test the >> bits that you expect to work. If high level tests don't work yet, >> then a test/cctest/test-assembler-mips.cc file that goes alongside the >> other assembler test files is the right way to go. I would very much >> like to see the disassembler and simulator keeping up with the >> assembler so that the same tests can be run without MIPS hardware. >> >> > >> > Regards. >> > >> > Alexandre >> > > >> > > > > > > --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
