Coder Social home page Coder Social logo

andysan / gem5 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uart/gem5-mirror

1.0 1.0 10.0 155.36 MB

This repository contains some of my gem5 work. The official upstream repository is stored in Mercurial at http://repo.gem5.org/gem5.

Home Page: http://www.gem5.org

License: BSD 3-Clause "New" or "Revised" License

Python 22.68% Shell 0.01% C 6.23% C++ 66.29% Visual Basic 0.02% Ruby 0.12% TeX 0.13% Assembly 1.57% Perl 2.90% JavaScript 0.01% Emacs Lisp 0.01% Java 0.02%

gem5's People

Contributors

afarmahini avatar ahansson-arm avatar andysan avatar beckmabd avatar benash avatar binkert avatar cmnrd avatar ctorng avatar deater avatar djordje-kovacevic avatar ennobler avatar freedomtan avatar gandhijayneel avatar jthestness avatar marc-orr avatar matt2909 avatar michael-adler avatar musleh123 avatar nilayvaish avatar njayasena avatar pdudnik avatar powerjg avatar rdreslin avatar rickshin avatar rioshering avatar steve-reinhardt avatar sticklyman1936 avatar wadewalker avatar wilwan01 avatar yasuko-eckert avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

gem5's Issues

Implement a framework to write instruction tests

Many instructions, especially on x86, seem to be either unimplemented or broken in a subtle way. We need a proper test framework that makes it simple to implement test suites that checks instruction functionality.

I'd preferably want something that allows me to write the entire test case as a Python script that generates the necessary assembly (and requests a recompile if necessary) and drives the test cases (i.e., no need to write a separate assembly and Python file).

A test specification could look something like this:

setup("tc.regs.r10 = 0")
asm("inc %r10")
test("tc.regs.r10 == 1")

The generated code would use m5ops (preferably using the KVM-compatible memory mapped interface) to make callbacks to the simulator. The generated assembly would look something like this:

/ / Setup reserved registers used by the m5ops interface
mov $0xFFFF0000, %r15

// Make a callback to the python script to tell it to setup the state for the sub-test
mov %rax, 0xXXAA(%r15)
inc %rax
// Inform the script that the test block has executed and it needs to check state
mov %rax, 0xXXBB(%r15)

xor %rdi, %rdi
mov 0x2100(%r14), %rax

The Python script would intercept the different annotation instruction to setup state and test state. The script could simply be imported by the actual test script which would use a list of instructions from the test to drive the simulator.

build error

In file included from build/X86/arch/isa_traits.hh:1:0,
from build/X86/mem/port_proxy.hh:64,
from build/X86/mem/fs_translating_port_proxy.hh:62,
from build/X86/sim/arguments.hh:38,
from build/X86/sim/arguments.cc:34:
build/X86/arch/x86/isa_traits.hh:77:23: error: 'X86ISA::NoopMachInst' defined but not used [-Werror=unused-variable]
const ExtMachInst NoopMachInst = {

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.