|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 6609 | 
| | 
| 
| 
| | llvm-svn: 6601 | 
| | 
| 
| 
| | llvm-svn: 6597 | 
| | 
| 
| 
| | llvm-svn: 6594 | 
| | 
| 
| 
| | llvm-svn: 6591 | 
| | 
| 
| 
| | llvm-svn: 6589 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | rewriting it.  I also vacuumed out all the commented-out code and
inaccurate comments, etc.
(We need to put the mapping information in a data structure so that we can
pass it out to the JIT, instead of automagically converting it to .byte
directives.)
llvm-svn: 6574 | 
| | 
| 
| 
| | llvm-svn: 6572 | 
| | 
| 
| 
| | llvm-svn: 6568 | 
| | 
| 
| 
| | llvm-svn: 6567 | 
| | 
| 
| 
| 
| 
| | * Stop code from wrapping to the next line.
llvm-svn: 6566 | 
| | 
| 
| 
| | llvm-svn: 6565 | 
| | 
| 
| 
| 
| 
| 
| | they prefer the destination register to be last. Thus, two new classes were made
for them that accomodate for having this layout of operands (F3_1rd, F3_2rd).
llvm-svn: 6564 | 
| | 
| 
| 
| 
| 
| 
| | * Labeled sections that are not currently used in the Sparc backend as not
  requiring completion at this time.
llvm-svn: 6562 | 
| | 
| 
| 
| 
| 
| 
| | * Added instruction classes which start building from rs1, then rs2, and rd.
* Fixed order of operands in classes 4.1 and 4.2; added 4.6 .
llvm-svn: 6561 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | * Added new classes which start building from rs1, adding rs2, and then rd.
* Fixed order of operands in classes 3.11, 3.12, 3.16, and 3.17 .
* Fixed comments to reflect Real Life (tm).
* Removed "don't care" commented out assignments and dead classes (#if 0).
llvm-svn: 6560 | 
| | 
| 
| 
| | llvm-svn: 6559 | 
| | 
| 
| 
| 
| 
| 
| | None of these instructions are actually used in the Sparc backend, so no changes
were required in the instruction selector.
llvm-svn: 6549 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | SparcInstrSelection.cpp:
* Fixed opcodes to return correct 'i' version since the two functions are each
  only used in one place.
* Changed name of function to have an 'i' in the name to signify that they each
  return an immediate form of the opcode.
* Added a warning if either of the functions is ever used in a context which
  requires a register-version opcode.
SparcV9_F4.td: fixed class F4_3, added F4_4 and notes that F4_{1,2} need fixing
SparcV9.td: added the MOV(F)cc instructions
llvm-svn: 6548 | 
| | 
| 
| 
| 
| 
| | * Changed // comments to #ifdef 0 to maintain syntax highlighting.
llvm-svn: 6546 | 
| | 
| 
| 
| | llvm-svn: 6536 | 
| | 
| 
| 
| 
| 
| | from lib/Target/X86/X86CodeEmitter.cpp .
llvm-svn: 6530 | 
| | 
| 
| 
| | llvm-svn: 6522 | 
| | 
| 
| 
| 
| 
| | by a re-link of TableGen will notify Make to rebuild the .inc file.
llvm-svn: 6512 | 
| | 
| 
| 
| | llvm-svn: 6503 | 
| | 
| 
| 
| 
| 
| 
| 
| | globals in some other places may not have been pulled out either;
globals in phi operands were being put just before the phi instead of
in the predecessor basic blocks.
llvm-svn: 6466 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | call arguments and return values:
Now all copy operations before and after a call are generated during
selection instead of during register allocation.
The values are copied to virtual registers (or to the stack), but
in the former case these operands are marked with the correct physical
registers according to the calling convention.
Although this complicates scheduling and does not work well with
live range analysis, it simplifies the machine-dependent part of
register allocation.
llvm-svn: 6465 | 
| | 
| 
| 
| | llvm-svn: 6464 | 
| | 
| 
| 
| | llvm-svn: 6462 | 
| | 
| 
| 
| 
| 
| | Created new classes from which instructions inherit their ordering of fields.
llvm-svn: 6461 | 
| | 
| 
| 
| 
| 
| | * Fixed page numbers referring to the Sparc manual
llvm-svn: 6460 | 
| | 
| 
| 
| | llvm-svn: 6459 | 
| | 
| 
| 
| | llvm-svn: 6457 | 
| | 
| 
| 
| 
| 
| | "rs1, imm, rd": most importantly, rd goes last.
llvm-svn: 6456 | 
| | 
| 
| 
| 
| 
| 
| | * ability to save BasicBlock references to be resolved later
* register remappings from the enum values to the real hardware numbers
llvm-svn: 6449 | 
| | 
| 
| 
| 
| 
| | sections of instructions.
llvm-svn: 6448 | 
| | 
| 
| 
| 
| 
| | For one, converting register numbers based on class in the code emitter.
llvm-svn: 6447 | 
| | 
| 
| 
| 
| 
| 
| | Code beautification for the rest of the code: changed layout to match the rest
of the code base.
llvm-svn: 6446 | 
| | 
| 
| 
| | llvm-svn: 6444 | 
| | 
| 
| 
| | llvm-svn: 6439 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | instructions of format 3.12 and 3.13 cannot inherit from F3rdrs1, because that
implies that the two registers are the first two parameters to the instruction.
Thus I made the instructions inherit from F3rd again, and manually added an rs1
field AFTER the shcnt field in the instruction, which maps to the appropriate
place in the instruction.
The other changes are just elimination of unnecessary spaces.
llvm-svn: 6437 | 
| | 
| 
| 
| 
| 
| 
| | SparcV9_F3.td: F3_12 and F3_13 instructions have rd and rs1 fields. Also,
 their fields were totally screwed up. This seems to fix the problem.
llvm-svn: 6429 | 
| | 
| 
| 
| | llvm-svn: 6411 | 
| | 
| 
| 
| 
| 
| | has their path set up by this point.
llvm-svn: 6410 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | exit code. This, in turn, makes an empty file SparcV9CodeEmitter.inc, and only
much later, produces a link error because the key function that TableGen creates
isn't found.
Using a temporary file in the middle forces a good .INC file to be generated by
TableGen, and it will keep trying until you fix the input file.
llvm-svn: 6392 | 
| | 
| 
| 
| | llvm-svn: 6390 | 
| | 
| 
| 
| 
| 
| | Also, added a rule to delete the generated .inc file on `make clean'.
llvm-svn: 6389 | 
| | 
| 
| 
| 
| 
| 
| 
| | * Added some Format 4 classes, but not instructions
* Added notes on missing sections with FIXMEs
* Added RDCCR instr
llvm-svn: 6388 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | list (rd, rs1, imm), in that order (bit-wise), the actual assembly syntax is
instr rd, imm, rs1, and that is how they are constructed in the instruction
selector. This fixes the discrepancy.
Also fixed some comments along the same lines and fixed page numbers referring
to where instructions are described in the Sparc manual.
llvm-svn: 6384 | 
| | 
| 
| 
| | llvm-svn: 6383 |