forked from M-Labs/artiq
8a908a7656
First, this calling convention doesn't actually exist in OR1K and trying to use it in Asserts build causes an UNREACHABLE. Second, I tried to introduce it and it does not appear to produce any measurable benefit: not only OR1K has a ton of CSRs but also it is quite hard, if not realistically impossible, to produce the kind of register pressure that would be relieved by sparing a few more CSRs for our exception raising function calls, since temporaries don't have to be preserved before a noreturn call and spilling over ten registers across an exceptional edge is not something that the code we care about would do. Third, it produces measurable drawbacks: it inflates code size of check:* functions by adding spills. Of course, this could be alleviated by making __artiq_raise coldcc as well, but what's the point anyway? |
||
---|---|---|
artiq | ||
conda | ||
doc | ||
examples | ||
misc | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CONTRIBUTING.rst | ||
LICENSE | ||
MANIFEST.in | ||
README.rst | ||
RELEASE_NOTES.rst | ||
RELEASING.rst | ||
setup.cfg | ||
setup.py | ||
versioneer.py |
README.rst
.. image:: doc/logo/artiq.png ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a next-generation control system for quantum information experiments. It is developed in partnership with the Ion Storage Group at NIST, and its applicability reaches beyond ion trapping. The system features a high-level programming language that helps describing complex experiments, which is compiled and executed on dedicated hardware with nanosecond timing resolution and sub-microsecond latency. Technologies employed include Python, Migen, MiSoC/mor1kx, LLVM and llvmlite. Website: https://m-labs.hk/artiq Copyright (C) 2014-2016 M-Labs Limited. Licensed under GNU GPL version 3.