-
Notifications
You must be signed in to change notification settings - Fork 0
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
Problem with PPC Assembly #1
Comments
Managed to find https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/assembler/idalangref_cmp_instr.html, but is GCC using a different order, for registers? |
According to https://patchwork.ozlabs.org/patch/678943/#1492141 (thanks to zid, in #osdev, on FreeNode, for pointing this out!), the BinUtils folks changed the mnemonic syntax, back in 2016. Should we be using cmpd, or cmpw, though? |
Needed to do this, for both POWER3/4 (changing to cmpd), but the next issue is the lack of asmsyms.h |
According to http://www.osfree.org/doku/en:docs:kernel:build, there's some extra steps, to make various header files: make tcb_layout.h |
That seems to bail, but I did find https://lists.gnu.org/archive/html/l4-hurd/2005-01/msg00149.html |
Applied workarounds, for both P3/4 versions, in 0a4ae8f. This at least gets us out of the rut, involving the Assembly code. |
As part of #9, we imported a huge heap of PowerPC 64-bit code, from the NICTA Pistachio 1.1 distribution, that changes the ABI, and API in places, so we need to go back, and see if the workaround for |
On our MiniCloud PPCBE instance, we get to this stage, with the latest changes:
|
With some evil hacks in the
The next mission is fixing this...
|
Looking at https://github.com/vmlemon/Orion/search?p=5&q=cmp&unscoped_q=cmp, we still have some PPC code, that uses cmp, but we haven't gotten as far as building it, yet. |
Express-patched all of the user/serv/sigma0/crt0-powerpc64.S, user/apps/l4test/powerpc64/crt0.S, user/util/piggybacker/ofppc/crt0.S, user/util/piggybacker/ofppc64/crt0.S, kernel/src/platform/ofg5/head.S, pistachio--devel--1.1--version-0/kernel/src/platform/ofg5/head.S, pistachio--devel--1.1--version-0/kernel/src/platform/ofpower3/head.S, pistachio--devel--1.1--version-0/kernel/src/platform/ofpower4/head.S, kernel/src/platform/ofppc/startup.S, and pistachio--devel--1.1--version-0/kernel/src/platform/ofppc/startup.S versions that we have. We don't seem to use cmp much (seems to be once, per-file), so there wasn't much to do, but tediously adding a 'd' to every instance, by hand... I'm also unsure if it's necessary to do it for 32-bit PPC (or if it breaks things), but I patched those versions, too. Going to close this low-hanging bug, now. |
Orion/kernel/src/platform/ofpower4/head.S
Line 68 in 51855e2
/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S: Assembler messages:
/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S:68: Error: operand out of range (10 is not between 0 and 1)
/WhirlPool/pSeries41/Orion/kernel/src/platform/ofpower4/head.S:68: Error: missing operand
The text was updated successfully, but these errors were encountered: