summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add new shorter predicates for testing machine operands for various types: Chris Lattner2007-12-301-3/+3
| | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
* Use MachineOperand::getImm instead of MachineOperand::getImmedValue. ↵Chris Lattner2007-12-301-4/+4
| | | | | | Likewise setImmedValue -> setImm llvm-svn: 45453
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Much improved pic jumptable codegen:Evan Cheng2007-11-091-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Then: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry imull $4, %ecx, %ecx leal LJTI1_0-"L1$pb"(%eax), %edx addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx jmpl *%edx .align 2 .set L1_0_set_3,LBB1_3-LJTI1_0 .set L1_0_set_2,LBB1_2-LJTI1_0 .set L1_0_set_5,LBB1_5-LJTI1_0 .set L1_0_set_4,LBB1_4-LJTI1_0 LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 Now: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax jmpl *%eax .align 2 .set L1_0_set_3,LBB1_3-"L1$pb" .set L1_0_set_2,LBB1_2-"L1$pb" .set L1_0_set_5,LBB1_5-"L1$pb" .set L1_0_set_4,LBB1_4-"L1$pb" LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 llvm-svn: 43924
* Revert 42908 for now.Evan Cheng2007-10-141-5/+5
| | | | llvm-svn: 42960
* Change the names used for internal labels to use the currentDan Gohman2007-10-121-5/+5
| | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
* Use empty() member functions when that's what's being tested for insteadDan Gohman2007-10-031-5/+5
| | | | | | of comparing begin() and end(). llvm-svn: 42585
* Change the x86 backend to use extract_subreg for truncation operations. ↵Christopher Lamb2007-07-291-23/+0
| | | | | | Passes DejaGnu, SingleSource and MultiSource. llvm-svn: 40578
* Don't ignore the return value of AsmPrinter::doInitialization andDan Gohman2007-07-251-4/+4
| | | | | | AsmPrinter::doFinalization. llvm-svn: 40487
* Delete the svn:executable property on these files, which aren't executable.Dan Gohman2007-07-231-0/+0
| | | | llvm-svn: 40441
* Comment out usage of write() for now.Jeff Cohen2007-04-201-4/+0
| | | | llvm-svn: 36287
* Make Microsoft assembler and linker happy.Jeff Cohen2007-04-201-0/+4
| | | | llvm-svn: 36265
* rename X86FunctionInfo to X86MachineFunctionInfo to match the header fileChris Lattner2007-04-171-1/+1
| | | | | | it is defined in. llvm-svn: 36196
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-3/+3
| | | | | | confusion with external linkage types. llvm-svn: 33663
* remove dead code, frameindices must be resolve before the asmprinter runs.Chris Lattner2007-01-131-8/+0
| | | | llvm-svn: 33187
* eliminate static ctors for Statistic objects.Chris Lattner2006-12-191-0/+4
| | | | llvm-svn: 32703
* Fix for PR1059: http://llvm.org/PR1059Anton Korobeynikov2006-12-191-2/+9
| | | | llvm-svn: 32685
* Fix PR1061 and CodeGen/X86/2006-12-19-IntelSyntax.llChris Lattner2006-12-191-1/+2
| | | | llvm-svn: 32676
* For PR786:Reid Spencer2006-11-021-1/+0
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* 1. Clean up code due to changes in SwitchTo*Section(2)Anton Korobeynikov2006-10-311-4/+4
| | | | | | | | | | 2. Added partial debug support for mingw\cygwin targets (the same as Linux\ELF). Please note, that currently mingw\cygwin uses 'stabs' format for storing debug info by default, thus many (runtime) libraries has this information included. These formats shouldn't be mixed in one binary ('stabs' & 'DWARF'), otherwise binutils tools will be confused. llvm-svn: 31311
* Move getPreferredAlignmentLog from AsmPrinter to TargetDataDevang Patel2006-10-241-1/+1
| | | | llvm-svn: 31171
* For PR950:Reid Spencer2006-10-201-1/+1
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Pass the MachineFunction into EmitJumpTableInfo.Chris Lattner2006-10-051-0/+3
| | | | llvm-svn: 30742
* Implement getSectionForFunction, use it when printing function body.Chris Lattner2006-10-051-2/+7
| | | | llvm-svn: 30737
* Various random and minor code cleanups.Chris Lattner2006-09-261-4/+3
| | | | llvm-svn: 30608
* Adding codegeneration for StdCall & FastCall calling conventionsAnton Korobeynikov2006-09-201-6/+35
| | | | llvm-svn: 30549
* Adding dllimport, dllexport and external weak linkage types.Anton Korobeynikov2006-09-141-4/+55
| | | | | | | | | DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. llvm-svn: 30374
* Committing X86-64 support.Evan Cheng2006-09-081-9/+21
| | | | llvm-svn: 30177
* Make target asm info a property of the target machine.Jim Laskey2006-09-071-0/+2
| | | | llvm-svn: 30162
* Separate target specific asm properties from the asm printers.Jim Laskey2006-09-061-32/+8
| | | | llvm-svn: 30126
* Rename ASM modifier trunc8, trunc16 to subreg8, subreg16.Evan Cheng2006-05-311-2/+2
| | | | llvm-svn: 28606
* Remove a couple of bogus casts.Evan Cheng2006-05-261-1/+1
| | | | llvm-svn: 28493
* X86 integer register classes naming changes. Make them consistent with FP, ↵Evan Cheng2006-05-161-4/+4
| | | | | | vector classes. llvm-svn: 28324
* Implement MASM sections correctly, without a "has masm sections flag" and a ↵Chris Lattner2006-05-091-1/+3
| | | | | | bunch of special case code. llvm-svn: 28194
* MASM doesn't have one of these.Chris Lattner2006-05-091-0/+1
| | | | llvm-svn: 28190
* Preserve prior behaviorChris Lattner2006-05-091-2/+1
| | | | llvm-svn: 28187
* Fix the MASM asmprinter's lies. It does not want to emit code to .text/.dataChris Lattner2006-05-091-3/+7
| | | | | | it wants it emitted to _text/_data. llvm-svn: 28185
* Split SwitchSection into SwitchTo{Text|Data}Section methods.Chris Lattner2006-05-091-5/+5
| | | | llvm-svn: 28184
* Fixing truncate. Previously we were emitting truncate from r16 to r8 asEvan Cheng2006-05-081-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | movw. That is we promote the destination operand to r16. So %CH = TRUNC_R16_R8 %BP is emitted as movw %bp, %cx. This is incorrect. If %cl is live, it would be clobbered. Ideally we want to do the opposite, that is emitted it as movb ??, %ch But this is not possible since %bp does not have a r8 sub-register. We are now defining a new register class R16_ which is a subclass of R16 containing only those 16-bit registers that have r8 sub-registers (i.e. AX - DX). We isel the truncate to two instructions, a MOV16to16_ to copy the value to the R16_ class, followed by a TRUNC_R16_R8. Due to bug 770, the register colaescer is not going to coalesce between R16 and R16_. That will be fixed later so we can eliminate the MOV16to16_. Right now, it can only be eliminated if we are lucky that source and destination registers are the same. llvm-svn: 28164
* Fix some loose ends in MASM support.Jeff Cohen2006-05-061-60/+69
| | | | llvm-svn: 28148
* Better implementation of truncate. ISel matches it to a pseudo instructionEvan Cheng2006-05-051-101/+34
| | | | | | | | that gets emitted as movl (for r32 to i16, i8) or a movw (for r16 to i8). And if the destination gets allocated a subregister of the source operand, then the instruction will not be emitted at all. llvm-svn: 28119
* Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling.Chris Lattner2006-05-041-1/+1
| | | | llvm-svn: 28104
* There shalt be only one "immediate" operand type!Chris Lattner2006-05-041-2/+1
| | | | llvm-svn: 28099
* Make external globals public; other minor cleanup.Jeff Cohen2006-05-041-15/+17
| | | | llvm-svn: 28096
* Remove a bunch more SparcV9 specific stuffChris Lattner2006-05-041-6/+0
| | | | llvm-svn: 28093
* Remove some more unused stuff from MachineInstr that was leftover from V9.Chris Lattner2006-05-041-4/+0
| | | | llvm-svn: 28091
* Extend printBasicBlockLabel a bit so that it can be used to print allNate Begeman2006-05-021-4/+4
| | | | | | | basic block labels, consolidating the code to do so in one place for each target. llvm-svn: 28050
* De-virtualize SwitchSection.Jeff Cohen2006-05-021-26/+2
| | | | llvm-svn: 28047
* De-virtualize EmitZeroes.Jeff Cohen2006-05-021-7/+2
| | | | llvm-svn: 28046
* Finish support for Microsoft ML/MASM. May still be a few rough edges.Jeff Cohen2006-05-021-3/+48
| | | | llvm-svn: 28045
OpenPOWER on IntegriCloud