llvm-mirror/lib
Chris Lattner 0808f5daa5 Implement negation of longs efficiently. For this testcase:
long %test(long %X) {
        %Y = sub long 0, %X
        ret long %Y
}

We used to generate:

test:
        sub %ESP, 4
        mov DWORD PTR [%ESP], %ESI
        mov %ECX, DWORD PTR [%ESP + 8]
        mov %ESI, DWORD PTR [%ESP + 12]
        mov %EAX, 0
        mov %EDX, 0
        sub %EAX, %ECX
        sbb %EDX, %ESI
        mov %ESI, DWORD PTR [%ESP]
        add %ESP, 4
        ret

Now we generate:

test:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %EDX, DWORD PTR [%ESP + 8]
        neg %EAX
        adc %EDX, 0
        neg %EDX
        ret

llvm-svn: 12681
2004-04-06 01:48:06 +00:00
..
Analysis Sparc don't got not "sqrtl", bum bum bum 2004-04-05 19:05:15 +00:00
AsmParser Support getelementptr instructions which use uint's to index into structure 2004-04-05 01:30:04 +00:00
Bytecode Implement support for a new LLVM 1.3 bytecode format, which uses uint's 2004-04-05 01:27:26 +00:00
CodeGen MBB::remove should not modify the iterator passed in 2004-03-31 21:59:59 +00:00
Debugger "fix" a nasty race condition 2004-01-14 21:18:03 +00:00
ExecutionEngine Adjust to new interface 2004-04-04 19:47:06 +00:00
Support lli no longer takes the -quiet option! 2004-04-05 20:28:41 +00:00
Target Implement negation of longs efficiently. For this testcase: 2004-04-06 01:48:06 +00:00
Transforms Fix a bug in yesterdays checkins which broke siod. siod is a great testcase! :) 2004-04-05 16:02:41 +00:00
VMCore Support getelementptr instructions which use uint's to index into structure 2004-04-05 01:30:19 +00:00
Makefile CBackend is no longer here 2004-02-13 23:29:37 +00:00