llvm / llvm/llvm-project

MIPS: inline asm should use set noreorder instead of set reorder

Open
#174,909 1 comment 0 reactions 1 assignee Claimed by @wzssyqa View on GitHub
backend:MIPS
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

```
int f(int a, int b) {
int result;
asm volatile (
"div %1, %2\n\t"
"mflo %0\n"
: "=r" (result)
: "r" (a), "r" (b)
: "hi", "lo"
);

return result;
}
```

It will generates something like:
```
#APP
.set push
.set at
.set macro
.set reorder

div $zero, $4, $5
bnez $5, $tmp0
nop
break 7
$tmp0:
mflo $4
mflo $2

.set pop
#NO_APP
```

It may generate different binary file by
* .C -> .S -> .O
* .C -> .O

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.