Source code for the Actionscript virtual machine
adobe / avmplus Goto Github PK
View Code? Open in Web Editor NEWSource code for the Actionscript virtual machine
License: Mozilla Public License 2.0
Source code for the Actionscript virtual machine
License: Mozilla Public License 2.0
Hi @wmaddox3rd
I have noticed that in lirasm immediately after the LIR_start instruction, there are additional instructions to save registers.
mLir->ins0(LIR_start);
for (int i = 0; i < nanojit::NumSavedRegs; ++i)
mLir->insParam(i, 1);
Similarly in LirHelper - this is done done in emitStart():
// create params for saved regs -- processor specific
for (int i=0; i < NumSavedRegs; i++) {
LIns *p = lirout->insParam(i, 1); (void) p;
}
In lirasm when a fragment is ended a guard is inserted:
mFragment->lastIns =
mLir->insGuard(LIR_x, NULL, createGuardRecord(createSideExit()))
I noticed that the registers saved initially are popped in the guard section.
Looking at the generated code it seems to me though that when the code fragment has 'ret' instructions then the guard will never be executed - so in that case the saved registers will not be restored?
Is it mandatory to include the guard?
Thanks and Regards
Hi,
The lirasm test suite fails on Linux and Mac OSX because the random test fails with a segmentation fault.
Regards
hi, guys. I want to compile this latest avmplus under windows. I can't find any manuals about this. I find there are a lot vs solution files under platform\win32. However, I try to load the avm2010.sln into vs 2010. And when i compile the project, the error C2220 saying no object file is generated occurs. There are only lots of .obj file in the output folder. Is this a successful compilation? How can I make a avmplus.lib or avmplus.dll? Thanks
Hi,
is AVMPLUS a clone of AVM2?
is AVM1 supported?
thanks
Hi @wmaddox3rd,
My name is Fil and I’m from Adobe’s Open Source Office. I see this project has been inactive for a couple of years now. Just wondering: is there still value in keeping this project around? Do we foresee community usage/activity happening around this project? Looks like issues have been filed but we haven't been super responsive to those 😞
If this is still valid and should remain open, can I send some pull requests to update the documentation? At a minimum we need contribution guidelines that reference requiring the signing of Adobe’s CLA, but the documentation in this repo, in general, needs a lot of work. I am happy to help with that if you wish, if someone can help me understand how to use this repo, how to build and run it, and how to run the tests?
If no, is it OK if we archive this project?
Thanks for any info.
-Fil
Hi,
Looks like in lirasm.cpp the following definition:
nanojit::Allocator::allocChunk(size_t nbytes, bool /*fallible*/)
doesn't match the declaration which does not have the extra bool parameter.
Also the following lines fail:
mLir = mCseFilter = new CseFilter(mLir, LIRASM_NUM_USED_ACCS, mParent.mAlloc);
Should this be:
mLir = mCseFilter = new CseFilter(mLir, LIRASM_NUM_USED_ACCS, mParent.mAlloc, mParent.mConfig);
And
Lirasm::Lirasm(bool verbose, Config& config) :
mConfig(config),
mAssm(mCodeAlloc, mAlloc, mAlloc, &mLogc, mConfig)
should be:
Lirasm::Lirasm(bool verbose, Config& config) :
mConfig(config),
mCodeAlloc(&config),
mAssm(mCodeAlloc, mAlloc, mAlloc, &mLogc, mConfig)
I am building lirasm using Visual C++ 2015 on Windows 10.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.