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

Integrated kmc gcc for matching libgultra #224

Merged
merged 1 commit into from
Mar 26, 2021
Merged

Conversation

Mr-Wiseguy
Copy link
Contributor

Any source files in the src/ultra directory will be compiled using it.
Moved epiread and sptaskyield as examples.

@Mr-Wiseguy
Copy link
Contributor Author

Don't merge this PR yet, I swapped to a different version of mips ld to fix an issue with modern mips ld not behaving well with KMC gcc compiled object files. I will look into a better fix tomorrow.

@Mr-Wiseguy
Copy link
Contributor Author

I have resolved the ld issue by stripping the problematic symbols from the kmc gcc output files.

configure.py Outdated Show resolved Hide resolved
Any source files in the src/ultra directory will be compiled using it
Moved epiread and sptaskyield as examples
@@ -107,7 +107,7 @@ segments:
- [0x3BD40, hasm, os/osSetIntMask]
- [0x3bde0, c, os/osCreatePiManager]
- [0x3C160, c, os/osEPiWriteIo] # MOVE_ADDU
- [0x3c1c0, c, os/osEPiReadIo] # MOVE_ADDU
- [0x3c1c0, c, ultra/epiread]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say we might wanna keep my # MOVE_ADDU comment, but I guess everything in the ultra/ dir will eventually all implicitly have the addu for move anyway...

I was using those comments to track which files had the difference, but I guess we can just move them into ultra/ and the new compiler will generate the correct code? This will also get rid of the need for the different asm macro right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, there's no need for the macros in those files anymore. Anything compiled with kmc gcc will use addu for moves, and in fact the macros probably wouldn't even work with kmc gcc as it seems to not have as robust support for inline asm (for example, INCLUDE_ASM doesn't work with it).

@ethteck
Copy link
Member

ethteck commented Mar 26, 2021

thanks so much! Excited to match libultra after this

Copy link
Member

@bates64 bates64 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a couple correctness issues I forsee with the new ninja stuff but nothing that needs to be fixed right now. Thanks for the PR!!

@ethteck ethteck merged commit c83d233 into pmret:master Mar 26, 2021
@ethteck
Copy link
Member

ethteck commented Mar 28, 2021

Going to revert this for now since we're not actively working on libultra so much and the wine dependency is heavy and seems to be acting up weirdly sometimes. But we will definitely revisit this in the near future. :)

ethteck added a commit that referenced this pull request Mar 28, 2021
ethteck added a commit that referenced this pull request Mar 28, 2021
* Revert "Integrated kmc gcc for matching libgultra (#224)"

This reverts commit c83d233.

* also revert install.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants