| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
out of the AsmPrinter directory into libarm. Now the
ARM InstPrinters depend jsut on the MC stuff, not on vmcore
or codegen.
llvm-svn: 108783
|
|
|
|
|
|
| |
-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.
llvm-svn: 108465
|
|
|
|
|
|
|
| |
instructions use different values (e.g., 2-byte or 4-byte alignment).
Also fix ARMInstPrinter to print these alignments as bits instead of bytes.
llvm-svn: 108386
|
|
|
|
|
|
| |
avoid replicated code.
llvm-svn: 108227
|
|
|
|
| |
llvm-svn: 108130
|
|
|
|
|
|
| |
consistency with other instructions that have lists of register operands.
llvm-svn: 107944
|
|
|
|
| |
llvm-svn: 107701
|
|
|
|
|
|
|
| |
that it checks the immediate values, not just the instructions opcodes.
Radar 8110263.
llvm-svn: 107487
|
|
|
|
|
|
|
|
|
|
|
| |
the machine instruction representation of the immediate value to be encoded
into an integer with similar fields as the actual VMOV instruction. This makes
things easier for the disassembler, since it can just stuff the bits into the
immediate operand, but harder for the asm printer since it has to decode the
value to be printed. Testcase for the encoding will follow later when MC has
more support for ARM.
llvm-svn: 105836
|
|
|
|
| |
llvm-svn: 104899
|
|
|
|
| |
llvm-svn: 104891
|
|
|
|
|
|
|
| |
should fall through to the 'H' case, but instead 'Q' was falling through to 'R'
so that it would do the wrong thing for a big-endian ARM target.
llvm-svn: 104883
|
|
|
|
| |
llvm-svn: 104573
|
|
|
|
|
|
| |
from ARMRegisterInfo.h
llvm-svn: 104508
|
|
|
|
| |
llvm-svn: 103576
|
|
|
|
| |
llvm-svn: 102373
|
|
|
|
| |
llvm-svn: 101640
|
|
|
|
|
|
|
|
| |
printAddrMode2OffsetOperand(),
this patch removes the assert() from printAddrMode3OffsetOperand() and adds a test case.
llvm-svn: 101529
|
|
|
|
|
|
|
|
|
| |
considered legal instructions.
Refs: A8.6.51 LDC, LDC2 (immediate) -- page A8-107, A8.6.58 LDR (immediate, ARM)
-- page A8-121, and A8.6.194 STR (immediate, ARM) -- page A8-395.
llvm-svn: 101524
|
|
|
|
| |
llvm-svn: 101334
|
|
|
|
|
|
| |
api and update clients to use MCContext instead.
llvm-svn: 100808
|
|
|
|
|
|
|
| |
isn't well specified. ARM really needs to have its instprinter
finished at some point.
llvm-svn: 100439
|
|
|
|
|
|
| |
with spaces in them. Sym->getName() != OS << *Sym
llvm-svn: 100434
|
|
|
|
| |
llvm-svn: 100377
|
|
|
|
| |
llvm-svn: 100376
|
|
|
|
| |
llvm-svn: 100342
|
|
|
|
|
|
| |
enough to warrant caching in AsmPrinter, so remove it.
llvm-svn: 100336
|
|
|
|
|
|
|
|
|
|
| |
"asm printering" happens through MCStreamer. This also
Streamerizes PIC16 debug info, which escaped my attention.
This removes a leak from LLVMTargetMachine of the 'legacy'
output stream.
llvm-svn: 100327
|
|
|
|
|
|
| |
don't have mcstreamer support for yet.
llvm-svn: 100319
|
|
|
|
|
|
|
| |
implementations to use EmitRawText instead of writing
directly to "O".
llvm-svn: 100318
|
|
|
|
|
|
| |
raw_ostream to print to.
llvm-svn: 100313
|
|
|
|
|
|
|
|
| |
raw_ostream to print an instruction to had to be specified
at MCInstPrinter construction time instead of being able
to pick at each call to printInstruction.
llvm-svn: 100307
|
|
|
|
|
|
| |
member of AsmPrinter. Instead, pass it in explicitly.
llvm-svn: 100306
|
|
|
|
|
|
| |
of printOffset to pass in a stream to print to.
llvm-svn: 100296
|
|
|
|
| |
llvm-svn: 100031
|
|
|
|
|
|
|
|
|
| |
create symbols. It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902
|
|
|
|
|
|
|
| |
with changes to add a separate optional register update argument. Change all
the NEON instructions with address register writeback to use it.
llvm-svn: 99095
|
|
|
|
|
|
|
|
|
| |
addressing modes to omit the '+' from the assembler syntax #+/-<imm> or +/-<Rm>.
This patch removes the impl of printT2AddrModeImm8s4OffsetOperand() from
ARMAsmPrinter.cpp. It is used by disassembler as of now.
llvm-svn: 98774
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions to help disassembly.
We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60.
And modified test cases to not expect '+' in +reg or #+num. For example,
; CHECK: ldr.w r9, [r7, #28]
llvm-svn: 98745
|
|
|
|
| |
llvm-svn: 98692
|
|
|
|
|
|
|
| |
optional register update argument, which is currently unused -- when we add
support for that, it can just be a separate operand.
llvm-svn: 98683
|
|
|
|
| |
llvm-svn: 98648
|
|
|
|
|
|
| |
instructions for ld/st with writeback, the flag is completely redundant.
llvm-svn: 98643
|
|
|
|
| |
llvm-svn: 98642
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
U test/CodeGen/ARM/tls2.ll
U test/CodeGen/ARM/arm-negative-stride.ll
U test/CodeGen/ARM/2009-10-30.ll
U test/CodeGen/ARM/globals.ll
U test/CodeGen/ARM/str_pre-2.ll
U test/CodeGen/ARM/ldrd.ll
U test/CodeGen/ARM/2009-10-27-double-align.ll
U test/CodeGen/Thumb2/thumb2-strb.ll
U test/CodeGen/Thumb2/ldr-str-imm12.ll
U test/CodeGen/Thumb2/thumb2-strh.ll
U test/CodeGen/Thumb2/thumb2-ldr.ll
U test/CodeGen/Thumb2/thumb2-str_pre.ll
U test/CodeGen/Thumb2/thumb2-str.ll
U test/CodeGen/Thumb2/thumb2-ldrh.ll
U utils/TableGen/TableGen.cpp
U utils/TableGen/DisassemblerEmitter.cpp
D utils/TableGen/RISCDisassemblerEmitter.h
D utils/TableGen/RISCDisassemblerEmitter.cpp
U Makefile.rules
U lib/Target/ARM/ARMInstrNEON.td
U lib/Target/ARM/Makefile
U lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
D lib/Target/ARM/Disassembler
U lib/Target/ARM/ARMInstrFormats.td
U lib/Target/ARM/ARMAddressingModes.h
U lib/Target/ARM/Thumb2ITBlockPass.cpp
llvm-svn: 98640
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.
Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
instructions to help disassembly.
We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60.
And modified test cases to not expect '+' in +reg or #+num. For example,
; CHECK: ldr.w r9, [r7, #28]
llvm-svn: 98637
|
|
|
|
|
|
|
| |
This does not move entirely to UAL syntax, since the default "increment after"
suffix is empty but we still use "IA" for that.
llvm-svn: 98635
|
|
|
|
| |
llvm-svn: 98451
|
|
|
|
|
|
|
|
|
|
|
| |
and passing off ownership to AsmPrinter. Now MachineModuleInfo
creates it and owns it by value. This allows us to use MCSymbols
more consistently throughout the rest of the code generator, and
simplifies a bit of code. This also allows MachineFunction to
keep an MCContext reference handy, and cleans up the TargetRegistry
interfaces for AsmPrinters.
llvm-svn: 98450
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
writebacks to the address register. This gets rid of the hack that the
first register on the list was the magic writeback register operand. There
was an implicit constraint that if that operand was not reg0 it had to match
the base register operand. The post-RA scheduler's antidependency breaker
did not understand that constraint and sometimes changed one without the
other. This also fixes Radar 7495976 and should help the verifier work
better for ARM code.
There are now new ld/st instructions explicit writeback operands and explicit
constraints that tie those registers together.
llvm-svn: 98409
|