-
-
Notifications
You must be signed in to change notification settings - Fork 116
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
Ensuring ps1-packer's raw mode uses the i-cache. #1846
Ensuring ps1-packer's raw mode uses the i-cache. #1846
Conversation
WalkthroughThe pull request modifies the Changes
Sequence DiagramsequenceDiagram
participant Packer as PS1 Packer
participant Stub as Binary Stub
participant Cache as Instruction Cache
Packer->>Stub: Generate Stub
Stub->>Stub: Manipulate RA Register
Stub->>Stub: Set T0 Register
Stub->>Cache: Ensure Cache-Enabled Segment
Stub->>Packer: Return Prepared Binary
Poem
Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/supportpsx/ps1-packer.cc (1)
Line range hint
82-157
: Consider refactoring thepack
method to reduce complexity.The
pack
method has high cyclomatic complexity and the changes increase its size. Consider breaking it down into smaller, focused methods:
generateStub
compressData
generateBootstrap
- etc.
This would improve code maintainability without affecting the i-cache functionality.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/supportpsx/ps1-packer.cc
(3 hunks)
🧰 Additional context used
🪛 GitHub Check: CodeScene Cloud Delta Analysis (main)
src/supportpsx/ps1-packer.cc
[warning] 82-157: ❌ Getting worse: Complex Method
PCSX::PS1Packer::pack already has high cyclomatic complexity, and now it increases in Lines of Code from 256 to 261. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
[warning] 82-157: ❌ Getting worse: Complex Method
PCSX::PS1Packer::pack already has high cyclomatic complexity, and now it increases in Lines of Code from 256 to 261. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
⏰ Context from checks skipped due to timeout of 90000ms (10)
- GitHub Check: macos-intel-build-and-test
- GitHub Check: macos-arm-build-and-test
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: aur-build
- GitHub Check: macos-build-and-test-toolchain
- GitHub Check: coverage
- GitHub Check: cross-arm64
- GitHub Check: asan
- GitHub Check: build
- GitHub Check: toolchain
🔇 Additional comments (2)
src/supportpsx/ps1-packer.cc (2)
82-82
: LGTM: Stub size increase is necessary.The increase in stub size from 28 to 48 bytes accommodates the additional instructions needed for i-cache handling.
🧰 Tools
🪛 GitHub Check: CodeScene Cloud Delta Analysis (main)
[warning] 82-157: ❌ Getting worse: Complex Method
PCSX::PS1Packer::pack already has high cyclomatic complexity, and now it increases in Lines of Code from 256 to 261. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
Line range hint
137-157
: LGTM: Raw mode changes ensure i-cache usage.The changes correctly ensure that the jump to the decompressor code occurs in a segment where the i-cache is enabled by:
- Masking out segment bits using
0x1fffffff
- Setting the segment to
0x80000000
(kernel segment with cache enabled)- Adjusting the offset to account for the increased stub size
No description provided.