add a note.

llvm-svn: 42607
This commit is contained in:
Chris Lattner 2007-10-04 15:47:27 +00:00
parent 2fba4a85ea
commit 1f2b5f0e13
1 changed files with 40 additions and 0 deletions

View File

@ -1362,3 +1362,43 @@ _foo:
//===---------------------------------------------------------------------===//
We compile this:
void compare (long long foo) {
if (foo < 4294967297LL)
abort();
}
to:
_compare:
subl $12, %esp
cmpl $0, 16(%esp)
setne %al
movzbw %al, %ax
cmpl $1, 20(%esp)
setg %cl
movzbw %cl, %cx
cmove %ax, %cx
movw %cx, %ax
testb $1, %al
je LBB1_2 # cond_true
(also really horrible code on ppc). This is due to the expand code for 64-bit
compares. GCC produces multiple branches, which is much nicer:
_compare:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl 8(%ebp), %eax
movl 12(%ebp), %edx
subl $1, %edx
jg L5
L7:
jl L4
cmpl $0, %eax
jbe L4
L5:
//===---------------------------------------------------------------------===//