llvm-project/llvm/lib
Jakob Stoklund Olesen 5ad3b35377 Add an I64Regs register class for 64-bit registers.
We are going to use the same registers for 32-bit and 64-bit values, but
in two different register classes. The I64Regs register class has a
larger spill size and alignment.

The addition of an i64 register class confuses TableGen's type
inference, so it is necessary to clarify the type of some immediates and
the G0 register.

In 64-bit mode, pointers are i64 and should use the I64Regs register
class. Implement getPointerRegClass() to dynamically provide the pointer
register class depending on the subtarget. Use ptr_rc and iPTR for
memory operands.

Finally, add the i64 type to the IntRegs register class. This register
class is not used to hold i64 values, I64Regs is for that. The type is
required to appease TableGen's type checking in output patterns like this:

  def : Pat<(add i64:$a, i64:$b), (ADDrr $a, $b)>;

SPARC v9 uses the same ADDrr instruction for i32 and i64 additions, and
TableGen doesn't know to check the type of register sub-classes.

llvm-svn: 178522
2013-04-02 04:08:54 +00:00
..
Analysis Build fixes for STLPort + GCC 2013-03-29 18:48:45 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
Bitcode Whitespace cleanup 2013-04-01 02:28:07 +00:00
CodeGen Merge load/store sequences with adresses: base + index + offset 2013-04-01 18:12:58 +00:00
DebugInfo Fix missing std::. Not sure how this compiles for anyone else. 2013-03-21 00:57:21 +00:00
ExecutionEngine Add support for vector data types in the LLVM interpreter. 2013-04-01 15:53:30 +00:00
IR Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
IRReader Fix top-comment header and some indentation 2013-04-01 19:47:56 +00:00
Linker Specutively revert r178130. 2013-03-27 17:54:41 +00:00
MC Mips direct object exception handling regression 2013-04-01 21:55:15 +00:00
Object Move an assert earlier in a file and check that the result of 2013-02-28 20:26:17 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support Put private class into an anonmyous namespace. 2013-03-30 15:23:08 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target Add an I64Regs register class for 64-bit registers. 2013-04-02 04:08:54 +00:00
Transforms Correct assertion condition 2013-04-01 18:13:05 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00