Skip to content

Conversation

@CUB3D
Copy link
Contributor

@CUB3D CUB3D commented Dec 18, 2025

I annoyingly missed this one during #8406. It was reported to me that mips16 LI instructions with an immediate > 0x1f will be treated as a LUI, this is due to a missing is_ext check.

Example Source
int main() {
	__asm__("nop");
	__asm__("nop");
	__asm__("nop");
	__asm__(".byte 0x6c");
	__asm__(".byte 0x2b");
	__asm__("nop");
	__asm__("nop");
	__asm__(".byte 0x6c");
	__asm__(".byte 0x18");
	__asm__("nop");
	__asm__("nop");
	__asm__("li $a0, 0x18");
	__asm__("li $a0, 0x19");
	__asm__("li $a0, 0x1a");
	__asm__("li $a0, 0x1b");
	__asm__("li $a0, 0x1c");
	__asm__("li $a0, 0x1d");
	__asm__("li $a0, 0x1e");
	__asm__("li $a0, 0x1f");
	__asm__("li $a0, 0x20");
	__asm__("li $a0, 0x21");
	__asm__("li $a0, 0x22");
	__asm__("li $a0, 0x23");
	__asm__("li $a0, 0x24");
	__asm__("li $a0, 0x25");
	__asm__("li $a0, 0x26");
	__asm__("li $a0, 0x27");
	__asm__("li $a0, 0x28");
	__asm__("li $a0, 0x29");
	__asm__("li $a0, 0x2a");
	__asm__("li $a0, 0x2b");
	__asm__("li $a0, 0x2c");
	__asm__("li $a0, 0x2d");
	__asm__("li $a0, 0x2e");
	__asm__("li $a0, 0x2f");
	__asm__("nop");
	__asm__("nop");
	__asm__("lui $a0, 0x18");
	__asm__("lui $a0, 0x19");
	__asm__("lui $a0, 0x1a");
	__asm__("lui $a0, 0x1b");
	__asm__("lui $a0, 0x1c");
	__asm__("lui $a0, 0x1d");
	__asm__("lui $a0, 0x1e");
	__asm__("lui $a0, 0x1f");
	__asm__("lui $a0, 0x20");
	__asm__("lui $a0, 0x21");
	__asm__("lui $a0, 0x22");
	__asm__("lui $a0, 0x23");
	__asm__("lui $a0, 0x24");
	__asm__("lui $a0, 0x25");
	__asm__("lui $a0, 0x26");
	__asm__("lui $a0, 0x27");
	__asm__("lui $a0, 0x28");
	__asm__("lui $a0, 0x29");
	__asm__("lui $a0, 0x2a");
	__asm__("lui $a0, 0x2b");
	__asm__("lui $a0, 0x2c");
	__asm__("lui $a0, 0x2d");
	__asm__("lui $a0, 0x2e");
	__asm__("lui $a0, 0x2f");
}

Example binary: a.out.zip

@GhidorahRex GhidorahRex self-assigned this Dec 18, 2025
@GhidorahRex GhidorahRex added Type: Bug Something isn't working Feature: Processor/MIPS Status: Triage Information is being gathered labels Dec 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature: Processor/MIPS Status: Triage Information is being gathered Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants