Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LSL.L emulation incorrect #108

Open
GoogleCodeExporter opened this issue Mar 31, 2015 · 3 comments
Open

LSL.L emulation incorrect #108

GoogleCodeExporter opened this issue Mar 31, 2015 · 3 comments

Comments

@GoogleCodeExporter
Copy link

D0 = 0x12211221 
D1 = 0x20
lsl.l d0,d1  (opcode E3A8)

After execution: D0=0x80000000 instead of 0

Original issue reported on code.google.com by r57sh...@uralweb.ru on 12 Oct 2013 at 2:54

@GoogleCodeExporter
Copy link
Author

For what is worth, the root of the problem is that StarScream uses native x86 
left shift instruction for this, which is modulo 32, instead of properly 
accounting for the fact that the shift should be modulo 64.

Original comment by marz...@gmail.com on 4 Sep 2014 at 1:41

  • Added labels: ****
  • Removed labels: ****

@GoogleCodeExporter
Copy link
Author

So, I have been taking a look at this. StarScream is a horrid mess of 
unmaintainable, unportable, inextensible code; the more time I spent looking at 
its code, the more I am convinced it should be burned to the ground and 
forgotten, and a new core be written instead.

If you are think it is not that bad, you are right, in a way: it is worse.

Original comment by marz...@gmail.com on 5 Dec 2014 at 1:10

  • Added labels: ****
  • Removed labels: ****

@DerekTurtleRoe
Copy link
Member

We could use FAME for this (Fast and Accurate Motorola Emulation library). Will look into everything when we organize the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants