mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 23:29:20 +00:00
add a note, I have no idea how important this is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25907 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c8c0bb00a3
commit
9acddcd07e
@ -350,3 +350,27 @@ much sense (e.g. its an infinite loop). :)
|
||||
None of the FPStack instructions are handled in
|
||||
X86RegisterInfo::foldMemoryOperand, which prevents the spiller from
|
||||
folding spill code into the instructions.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
In many cases, LLVM generates code like this:
|
||||
|
||||
_test:
|
||||
movl 8(%esp), %eax
|
||||
cmpl %eax, 4(%esp)
|
||||
setl %al
|
||||
movzbl %al, %eax
|
||||
ret
|
||||
|
||||
on some processors (which ones?), it is more efficient to do this:
|
||||
|
||||
_test:
|
||||
movl 8(%esp), %ebx
|
||||
xor %eax, %eax
|
||||
cmpl %ebx, 4(%esp)
|
||||
setl %al
|
||||
ret
|
||||
|
||||
Doing this correctly is tricky though, as the xor clobbers the flags.
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user