summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Make sure that Cygwin assembly includes _ as part of function names.Reid Spencer2005-06-021-0/+9
| | | | llvm-svn: 22190
* try custom expanders, doesn't seem to expand yet, so disabledAndrew Lenharth2005-05-311-0/+61
| | | | llvm-svn: 22188
* switch to the new live in thing. Really, this time it worksAndrew Lenharth2005-05-311-1/+1
| | | | llvm-svn: 22187
* switch to the new live in thingAndrew Lenharth2005-05-311-2/+2
| | | | llvm-svn: 22186
* switch to the new live in thingAndrew Lenharth2005-05-311-65/+60
| | | | llvm-svn: 22185
* match gcc, makes diff easierAndrew Lenharth2005-05-271-2/+2
| | | | llvm-svn: 22179
* Fix 2005-05-12-Int64ToFPAndrew Lenharth2005-05-261-0/+26
| | | | | | | | | The issue is there is no unsigned -> double conversion, only signed. So I need to test the sign and do a different thing depending on it. Ideally this should be in a different BB, but in the mean time, I use a branch free method. llvm-svn: 22177
* C'mon everybody, let's modify X86JITInfo.cpp. This time, we add <iostream>Nate Begeman2005-05-201-1/+2
| | | | | | so that the shiny new use of std::cerr is defined. llvm-svn: 22156
* Since everyone else has "fixed" this file, might as well join in the fun.Misha Brukman2005-05-201-4/+3
| | | | | | | * Change assert() to std::cerr printout, as it will not appear in opt builds * Add comments to clarify what #ifdef/#else/#endif match what condition(s) llvm-svn: 22154
* Fix this a 3rd time :)Chris Lattner2005-05-201-1/+2
| | | | llvm-svn: 22151
* fix compilation error due to no abort being defined. There is probably a ↵Andrew Lenharth2005-05-201-0/+1
| | | | | | better way to do this llvm-svn: 22150
* re-enable direct calls, this should just be a performance boostDuraid Madina2005-05-201-6/+5
| | | | llvm-svn: 22148
* this seems dead (and broke the ia64 build, so..)Duraid Madina2005-05-201-1/+0
| | | | llvm-svn: 22147
* Fix tail call support in VC++ buildsJeff Cohen2005-05-201-38/+45
| | | | llvm-svn: 22143
* Fastcc passes arguments in EAX and EDX, make sure the JIT doesn't clobber themChris Lattner2005-05-191-6/+39
| | | | llvm-svn: 22137
* Tailcalls require stubs to be emitted. Otherwise, the compilation callbackChris Lattner2005-05-192-9/+16
| | | | | | doesn't know who 'called' it. llvm-svn: 22136
* Wrap long linesMisha Brukman2005-05-181-5/+14
| | | | llvm-svn: 22125
* PPC "branch and link" instructions are branches in the PPC sense, but notChris Lattner2005-05-151-1/+1
| | | | | | | in the LLVM code generator sense (they are calls). Don't mark them as such, which fixes the regressions on the ppc tester last night llvm-svn: 22065
* Fix andrews changes to fit in 80 columnsChris Lattner2005-05-152-15/+30
| | | | llvm-svn: 22064
* make angry compilers happy againDuraid Madina2005-05-151-1/+2
| | | | llvm-svn: 22054
* don't reserve space for tailcall arg areas. It explicitly managed.Chris Lattner2005-05-151-2/+4
| | | | llvm-svn: 22050
* Teach reginfo how to deal with ADJSTACKPTRri, allowing us to generate:Chris Lattner2005-05-151-0/+3
| | | | | | | | | | | | add %ESP, 20 jmp %EDX # TAIL CALL instead of: add %ESP, -8 add %ESP, 28 jmp %EDX # TAIL CALL llvm-svn: 22047
* Implement proper tail calls in the X86 backend for all fastcc->fastccChris Lattner2005-05-151-10/+295
| | | | | | tail calls. llvm-svn: 22046
* Add markers in the asm file for tail calls, add a new ADJSTACKPTRriChris Lattner2005-05-151-4/+14
| | | | | | sorta-pseudo-instruction llvm-svn: 22042
* Yes, calltarget is the operand of the day.Chris Lattner2005-05-151-2/+1
| | | | llvm-svn: 22040
* When emitting the function epilog, check to see if there already a stackChris Lattner2005-05-141-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | adjustment. If so, we merge the adjustment into the existing one. This allows us to generate: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 add %ESP, 8 ret 4 intead of: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 sub %ESP, 4 add %ESP, 12 ret 4 for X86/fast-cc-merge-stack-adj.ll llvm-svn: 22038
* Add some new instructionsChris Lattner2005-05-142-2/+17
| | | | llvm-svn: 22036
* Pass i64 values correctly split in reg/mem to fastcc calls.Chris Lattner2005-05-141-2/+1
| | | | | | This fixes fourinarow with -enable-x86-fastcc. llvm-svn: 22022
* Use target-specific nodes for calls. This allows the fastcc code to not haveChris Lattner2005-05-141-105/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | to do ugly hackery to avoid emitting code like this: call foo mov vreg, EAX adjcallstackup ... If foo is a fastcc call and if vreg gets spilled, we might end up with this: call foo mov [ESP+offset], EAX ;; Offset doesn't consider the 12! sub ESP, 12 Which is bad. The previous hacky code to deal with this was A) gross B) not good enough. In particular, it could miss cases and emit the bad code above. Now we always emit this: call foo adjcallstackup ... mov vreg, EAX directly. This makes fastcc with callees poping the stack work much better. Next stop (finally!) really is tail calls. llvm-svn: 22021
* use a target-specific node and custom expander to lower long->FP to FILD64m.Chris Lattner2005-05-141-0/+74
| | | | | | | This should fix some missing symbols problems on BSD and improve performance of programs that use that operation. llvm-svn: 22012
* Make sure the start of the arg area and the end (after the RA is pushed)Chris Lattner2005-05-131-2/+22
| | | | | | is always 8-byte aligned for fastcc llvm-svn: 21995
* fix typoChris Lattner2005-05-131-3/+3
| | | | llvm-svn: 21991
* Fix the problems with callee popped argument listsChris Lattner2005-05-131-1/+37
| | | | llvm-svn: 21988
* Don't emit SAR X, 0 in the case of sdiv Y, 2Chris Lattner2005-05-131-2/+7
| | | | llvm-svn: 21986
* Fix UnitTests/2005-05-13-SDivTwo.cChris Lattner2005-05-132-3/+4
| | | | llvm-svn: 21985
* switch to having the callee pop stack operands for fastcc. This is ↵Chris Lattner2005-05-133-16/+43
| | | | | | | | currently buggy do not use llvm-svn: 21984
* allow RETIChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21980
* treat TAILCALL nodes identically to CALL nodesChris Lattner2005-05-134-4/+14
| | | | llvm-svn: 21977
* Build TAILCALL nodes in LowerCallTo, treat them like normal calls everywhere.Chris Lattner2005-05-131-8/+14
| | | | llvm-svn: 21976
* capitalizeChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21962
* clarify that these are v9 optionsChris Lattner2005-05-131-3/+3
| | | | llvm-svn: 21960
* hide this optionChris Lattner2005-05-132-2/+2
| | | | llvm-svn: 21959
* Add an isTailCall flag to LowerCallToChris Lattner2005-05-135-11/+21
| | | | llvm-svn: 21958
* add 'ret imm' instructionChris Lattner2005-05-131-1/+3
| | | | llvm-svn: 21945
* Realize that we don't support fmod directly, fixing ↵Chris Lattner2005-05-132-2/+6
| | | | | | CodeGen/Generic/print-arith-fp.ll llvm-svn: 21939
* Do not CopyFromReg physregs for live-in values. Instead, create a vreg forChris Lattner2005-05-131-31/+70
| | | | | | | | | | each live in, and copy the regs from the vregs. As the very first thing we do in the function, insert copies from the pregs to the vregs. This fixes problems where the token chain of CopyFromReg was not enough to allow reordering of the copyfromreg nodes and other unchained nodes (e.g. div, which clobbers eax on intel). llvm-svn: 21932
* rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN.Chris Lattner2005-05-125-32/+32
| | | | llvm-svn: 21915
* Add a new -enable-x86-fastcc option that enables passing the firstChris Lattner2005-05-121-11/+424
| | | | | | two integer values in registers for the fastcc calling conv. llvm-svn: 21912
* Pass in Calling Convention to use into LowerCallToChris Lattner2005-05-125-7/+11
| | | | llvm-svn: 21899
* Enable pattern isel by defaultChris Lattner2005-05-121-4/+4
| | | | llvm-svn: 21898
OpenPOWER on IntegriCloud