|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 163547 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Darwin lied about not supporting .lcomm and turned it into zerofill in the
  asm parser. Push the zerofill-conversion down into macho-specific code.
- This makes the tri-state LCOMMType enum superfluous, there are no targets
  without .lcomm.
- Do proper error reporting when trying to use .lcomm with alignment on a target
  that doesn't support it.
- .comm and .lcomm alignment was parsed in bytes on COFF, should be power of 2.
- Fixes PR13755 (.lcomm crashes on ELF).
llvm-svn: 163395 | 
| | 
| 
| 
| | llvm-svn: 163063 | 
| | 
| 
| 
| | llvm-svn: 162520 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | the register info for getEncodingValue. This builds on the
small patch of yesterday to set HWEncoding in the register
file.
One (deprecated) use was turned into a hard number to avoid
needing register info in the old JIT.
llvm-svn: 161628 | 
| | 
| 
| 
| | llvm-svn: 161161 | 
| | 
| 
| 
| | llvm-svn: 161159 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | where the other_half of the movt and movw relocation entries needs to get set
and only with the 16 bits of the other half.
rdar://10038370
llvm-svn: 160978 | 
| | 
| 
| 
| | llvm-svn: 160621 | 
| | 
| 
| 
| 
| 
| 
| | The condition code didn't actually matter for arm "b" instructions,
unlike "bl".  It should just use the R_ARM_JUMP24 reloc.
llvm-svn: 158722 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Use a dedicated MachO load command to annotate data-in-code regions.
This is the same format the linker produces for final executable images,
allowing consistency of representation and use of introspection tools
for both object and executable files.
Data-in-code regions are annotated via ".data_region"/".end_data_region"
directive pairs, with an optional region type.
data_region_directive := ".data_region" { region_type }
region_type := "jt8" | "jt16" | "jt32" | "jta32"
end_data_region_directive := ".end_data_region"
The previous handling of ARM-style "$d.*" labels was broken and has
been removed. Specifically, it didn't handle ARM vs. Thumb mode when
marking the end of the section.
rdar://11459456
llvm-svn: 157062 | 
| | 
| 
| 
| 
| 
| 
| 
| | Add the MCRegisterInfo to the factories and constructors.
Patch by Tom Stellard <Tom.Stellard@amd.com>.
llvm-svn: 156828 | 
| | 
| 
| 
| | llvm-svn: 156241 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | for the assembler and disassembler.  Which were not being set/read correctly
for offsets greater than 22 bits in some cases.
Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!
llvm-svn: 156118 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Expressions for movw/movt don't always have an :upper16: or :lower16:
on them and that's ok. When they don't, it's just a plain [0-65536]
immediate result, effectively the same as a :lower16: variant kind.
rdar://10550147
llvm-svn: 155941 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Replace some assert() calls w/ actual diagnostics. In a perfect world,
there'd be range checks on these values long before things ever reached
this code. For now, though, issuing a better-late-than-never diagnostic
is still a big improvement over assert().
rdar://11347287
llvm-svn: 155851 | 
| | 
| 
| 
| 
| 
| 
| 
| | instructions.
- However, it does support dmb, dsb, isb, mrs, and msr.
rdar://11331541
llvm-svn: 155685 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | The base address for the PC-relative load is Align(PC,4), so it's the
address of the word containing the 16-bit instruction, not the address
of the instruction itself. Ugh.
rdar://11314619
llvm-svn: 155659 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | the feature set of v7a. This comes about if the user specifies something like
-arch armv7 -mcpu=cortex-m3. We shouldn't be generating instructions such as
uxtab in this case.
rdar://11318438
llvm-svn: 155601 | 
| | 
| 
| 
| 
| 
| | right-shifted by #32. These are stored as shifts by #0 in the MCInst and correctly marshalled when transforming from or to assembly representation.
llvm-svn: 155565 | 
| | 
| 
| 
| 
| 
| 
| 
| | They reference the PC directly, so things work properly that way.
rdar://11231229
llvm-svn: 154576 | 
| | 
| 
| 
| 
| 
| | getInstructionName and the static data it contains since the same tables are already in MCInstrInfo.
llvm-svn: 153860 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | The 8-bit payload is not contiguous in the opcode. Move the upper nibble
over 4 bits into the correct place.
rdar://11158641
llvm-svn: 153780 | 
| | 
| 
| 
| 
| 
| 
| 
| | fixup_arm_condbranch.
Patch by Tim Northover!
llvm-svn: 153737 | 
| | 
| 
| 
| | llvm-svn: 153502 | 
| | 
| 
| 
| | llvm-svn: 153500 | 
| | 
| 
| 
| | llvm-svn: 153429 | 
| | 
| 
| 
| 
| 
| 
| 
| | Needed when building -mdynamic-no-pic code.
rdar://10459256
llvm-svn: 153097 | 
| | 
| 
| 
| 
| 
| | rdar://11059157
llvm-svn: 153055 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | The ARM code generator makes aggressive assumptions about the encodings
being selected for branches which MCRelaxAll invalidates.
rdar://11006355
llvm-svn: 152268 | 
| | 
| 
| 
| 
| 
| | Register pair, all lanes subscripting.
llvm-svn: 152157 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | With the new composite physical registers to represent arbitrary pairs
of DPR registers, we don't need the pseudo-registers anymore. Get rid of
a bunch of them that use DPR register pairs and just use the real
instructions directly instead.
llvm-svn: 152045 | 
| | 
| 
| 
| 
| 
| 
| | Used to allow context sensitive printing of super-register or sub-register
references.
llvm-svn: 152043 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | We on the linker to resolve calls to the appropriate BL/BLX instruction
to make interworking function correctly. It uses the symbol in the
relocation to do that, so we need to be careful about being too clever.
To enable this for ARM mode, split the BL/BLX fixup kind off from the
unconditional-branch fixups.
rdar://10927209
llvm-svn: 151571 | 
| | 
| 
| 
| | llvm-svn: 151339 | 
| | 
| 
| 
| | llvm-svn: 150918 | 
| | 
| 
| 
| 
| 
| | MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878 | 
| | 
| 
| 
| 
| 
| 
| | Now that the clang driver passes the CPU and feature information to
the backend when processing assembly files (150273), this isn't necessary.
llvm-svn: 150274 | 
| | 
| 
| 
| 
| 
| | rdar://10838899
llvm-svn: 150222 | 
| | 
| 
| 
| | llvm-svn: 149961 | 
| | 
| 
| 
| 
| 
| 
| 
| | and MIPS ELF backends.
Fixes PR11877
llvm-svn: 149180 | 
| | 
| 
| 
| | llvm-svn: 149102 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Adjust an example MachObjectWriter diagnostic to use the information
to issue a better message.
Before:
LLVM ERROR: unknown ARM fixup kind!
After:
x.s:6:5: error: unsupported relocation on symbol
    beq bar
    ^
rdar://9800182
llvm-svn: 149093 | 
| | 
| 
| 
| 
| 
| 
| 
| | relocations applied to all C++ constructors and destructors.
This enables the linker to match concrete relocation types (absolute or relative) with whatever library or C++ support code is being linked against.
llvm-svn: 149057 | 
| | 
| 
| 
| 
| 
| | accomodate every target I can think of offhand.
llvm-svn: 148833 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | violation -- MC cannot depend on CodeGen.
Specifically, the MCTargetDesc component of each target is actually
a subcomponent of the MC library. As such, it cannot depend on the
target-independent code generator, because MC itself cannot depend on
the target-independent code generator. This change moved a flag from the
ARM MCTargetDesc file ARMMCAsmInfo.cpp to the CodeGen layer in
ARMException.cpp, leaving behind an 'extern' to refer back to it. That
layering order isn't viable givin the constraints outlined above.
Commandline flags are designed to be static specifically to avoid these
types of bugs.
Fixing this is likely going to require some non-trivial refactoring.
llvm-svn: 148759 | 
| | 
| 
| 
| 
| 
| 
| 
| | This change adds an new value to the --arm-enable-ehabi option that
disables emitting unwinding descriptors. This mode gives a working
backtrace() without the (currently broken) exception support.
llvm-svn: 148686 | 
| | 
| 
| 
| | llvm-svn: 148578 | 
| | 
| 
| 
| | llvm-svn: 148495 | 
| | 
| 
| 
| | llvm-svn: 148456 |