| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
duplicating the logic (differently) in lots of different targets.
llvm-svn: 93847
|
|
|
|
| |
llvm-svn: 93845
|
|
|
|
|
|
|
|
|
| |
simplify and commonize some of the asmprinter logic for globals.
This also avoids printing the MCSection for .zerofill, which broke
the llvm-gcc build.
llvm-svn: 93843
|
|
|
|
| |
llvm-svn: 93839
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. TargetLoweringObjectFileMachO should decide if something
goes in zerofill instead of having every target do it.
2. TargetLoweringObjectFileMachO should assign said symbols to
the right MCSection, the asmprinters should just emit to the
right section.
3. Since all zerofill stuff goes through mcstreamer anymore,
MAI can have a bool "haszerofill" instead of having the textual
directive to emit.
llvm-svn: 93838
|
|
|
|
|
|
|
| |
remove it and change all the code that prints MCSymbols to use
<< instead, which is much simpler and cleaner.
llvm-svn: 93695
|
|
|
|
| |
llvm-svn: 93664
|
|
|
|
|
|
|
|
| |
and add an explicit ForcePrivate argument.
Switch FunctionEHFrameInfo to be MCSymbol based instead of string based.
llvm-svn: 93646
|
|
|
|
| |
llvm-svn: 93624
|
|
|
|
|
|
| |
calls. Add FIXMEs about a bunch of nondeterminism in stub output.
llvm-svn: 93621
|
|
|
|
| |
llvm-svn: 93619
|
|
|
|
| |
llvm-svn: 93608
|
|
|
|
|
|
| |
and CurrentFnName.
llvm-svn: 93594
|
|
|
|
| |
llvm-svn: 93334
|
|
|
|
| |
llvm-svn: 93333
|
|
|
|
| |
llvm-svn: 93332
|
|
|
|
| |
llvm-svn: 93305
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of returning it in an std::string. Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.
llvm-svn: 93298
|
|
|
|
|
|
| |
synonyms for PPC.
llvm-svn: 92817
|
|
|
|
|
|
|
|
| |
target-specific AsmPrinters. Not all comments need DebugInfo.
Re-enable the line numbers comment test.
llvm-svn: 88697
|
|
|
|
| |
llvm-svn: 86592
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
was generated. This caused code like this:
## The asm code for the function
.section __TEXT,__const
.align 2
lJTI11_0:
LJTI11_0:
.long LBB11_16
.long LBB11_4
.long LBB11_5
.long LBB11_6
.long LBB11_7
.long LBB11_8
.long LBB11_9
.long LBB11_10
.long LBB11_11
.long LBB11_12
.long LBB11_13
.long LBB11_14
Leh_func_end11: ## <---now in the wrong section!
The `Leh_func_end11' would then end up in the wrong section, causing the
resulting EH frame information to be wrong:
__ZL11CheckRightsjPKcbRbRP6NSData.eh:
.set Lset500eh,Leh_frame_end11-Leh_frame_begin11
.long Lset500eh ; Length of Frame Information Entry
Leh_frame_begin11:
.long Leh_frame_begin11-Leh_frame_common
.long Leh_func_begin11-.
.set Lset501eh,Leh_func_end11-Leh_func_begin11
.long Lset501eh ; FDE address range
`Lset501eh' is now something huge instead of the real value.
The X86 back-end generates the jump table after the EH information is
emitted. Do the same here.
llvm-svn: 86588
|
|
|
|
| |
llvm-svn: 86050
|
|
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
|
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
|
|
|
| |
llvm-svn: 84509
|
|
|
|
|
|
|
|
|
|
| |
verbose-asm mode, print comments instead. This eliminates a non-comment
difference between verbose-asm mode and non-verbose-asm mode.
Also, factor out the relevant code out of all the targets and into
target-independent code.
llvm-svn: 83392
|
|
|
|
|
|
| |
and after printing an instruction.
llvm-svn: 83363
|
|
|
|
|
|
| |
This will allow processDebugLoc() to handle scopes for DWARF debug info.
llvm-svn: 83183
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to emit target-specific things at the beginning of the asm output. This
fixes a problem for PPC, where the text sections are not being kept together
as expected. The base class doInitialization code calls DW->BeginModule()
which emits a bunch of DWARF section directives. The PPC doInitialization
code then emits all the TEXT section directives, with the intention that they
will be kept together. But as I understand it, the Darwin assembler treats
the default TEXT section as a special case and moves it to the beginning of
the file, which means that all those DWARF sections are in the middle of
the text. With this change, the EmitStartOfAsmFile hook is called before
the DWARF section directives are emitted, so that all the PPC text section
directives come out right at the beginning of the file.
llvm-svn: 83176
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and use PersonalityPrefix/Suffix to achieve the same effect (like
the x86 backend).
This changes the code generated for ppc static mode, but guess what,
we were generating this before:
.byte 0x9B ; Personality (indirect pcrel sdata4)
.long ___gxx_personality_v0-. ; Personality
which is not correct! (it is not an 'indirect' reference).
llvm-svn: 81965
|
|
|
|
| |
llvm-svn: 81714
|
|
|
|
|
|
| |
the object, make it static instead of const.
llvm-svn: 81711
|
|
|
|
|
|
| |
Nothing is using this info yet.
llvm-svn: 81707
|
|
|
|
|
|
|
| |
now that printBasicBlockLabel is only used for starting
a MBB. This allows elimination of a bunch of arguments.
llvm-svn: 81684
|
|
|
|
|
|
| |
instead.
llvm-svn: 81677
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
asm printer into the "printInstruction" routine. This
fixes a problem where the experimental asmprinter would
drop debug labels in some cases, and fixes issues on ppc/xcore
where pseudo instructions like "mr" didn't get debug locs properly.
It is annoying that this moves the call from one place into each
target, but a future set of more invasive refactorings will fix
that problem.
llvm-svn: 81377
|
|
|
|
| |
llvm-svn: 80119
|
|
|
|
|
|
|
|
|
| |
all Darwin targets; could be split into separate tests for
the chip subdirectories, but from Chris' last mail on testing
I assume he'd rather have only one test. Generic seems to be
the best available, maybe there should be a Darwin subdirectory?
llvm-svn: 79877
|
|
|
|
| |
llvm-svn: 79777
|
|
|
|
| |
llvm-svn: 79763
|
|
|
|
|
|
| |
talk to the MCStreamer directly instead.
llvm-svn: 79405
|
|
|
|
|
|
|
|
|
| |
for a single "m" constraint; this is wrong because the
opcode of a load or store would have to change in parallel.
This patch makes it always compute addresses into a register,
which is correct but not as efficient as possible. 7144566.
llvm-svn: 79292
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Link Register is volatile when using the 32-bit SVR4 ABI.
Make it possible to use the 64-bit SVR4 ABI.
Add non-volatile registers for the 64-bit SVR4 ABI.
Make sure r2 is a reserved register when using the 64-bit SVR4 ABI.
Update PPCFrameInfo for the 64-bit SVR4 ABI.
Add FIXME for 64-bit Darwin PPC.
Insert NOP instruction after direct function calls.
Emit official procedure descriptors.
Create TOC entries for GlobalAddress references.
Spill 64-bit non-volatile registers to the correct slots.
Only custom lower VAARG when using the 32-bit SVR4 ABI.
Use simple VASTART lowering for the 64-bit SVR4 ABI.
llvm-svn: 79091
|
|
|
|
|
|
| |
AsmPrinter instance (instead of just a FunctionPass)
llvm-svn: 78962
|
|
|
|
|
|
|
|
|
| |
TargetAsmInfo. This eliminates a dependency on TargetMachine.h from
TargetRegistry.h, which technically was a layering violation.
- Clients probably can only sensibly pass in the same TargetAsmInfo as the
TargetMachine has, but there are only limited clients of this API.
llvm-svn: 78928
|
|
|
|
|
|
| |
PrintUnmangledNameSafely.
llvm-svn: 78878
|
|
|
|
| |
llvm-svn: 78576
|
|
|
|
|
|
|
|
|
|
| |
ld: bad offset (0x00000091) for lo14 instruction pic-base fix-up in ___popcountdi2 from libgcc/./_popcountsi2_s.o
The problem is that the non lazy symbol pointers need to be 8 byte aligned
on ppc64 and .section doesn't have an implicit alignment like ".non_lazy_symbol_pointer"
does.
llvm-svn: 78572
|