History log of /external/llvm/lib/Target/Sparc/SparcInstrInfo.td
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1cefde83ffcfe869e86ef1976667f47856087dd3 27-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195575:
------------------------------------------------------------------------
r195575 | venkatra | 2013-11-24 12:07:35 -0800 (Sun, 24 Nov 2013) | 2 lines

[Sparc]: Implement LEA pattern for sparcv9.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
fcd5e86396e121fef7ad11d41cc8bc0a541631b2 03-Nov-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [SparcV9] Handle i64 <-> float conversions in sparcv9 mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
38aceb871478893bfa87f94c2cb3a344a4c8c2df 08-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Implement JIT for SPARC.

No new testcases. However, this patch makes all supported JIT testcases in
test/ExecutionEngine pass on Sparc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3bd3419e86867ba88e7ece12c9184a01759ed917 08-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Do not hardcode nop in the delay slot of TLS_CALL. Use DelaySlotFiller to fill the delay slot instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
79c5e0c5ca85454da568dfafc0bedb84af6c2a68 06-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Do not emit nop after fcmp* instruction with V9.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bb0ec9840bf6fd06fed967d5e70bee1983971344 06-Oct-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use addxcc/subxcc for adde/sube instead of addx/subx.
addx/subx does not modify conditional codes whereas addxcc/subxx does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
ff96efee98f8a06e8fdf29d34843659932a83e95 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use correct instruction pattern for CMPri.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0821c72f11659964f76f4326874dd4037900ce14 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Make SPARC instructions' encoding well defined such that TableGen can automatically generate code emitter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
69ae8f1abda2cfcbbb2ef895bbe23936d1beddf8 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Clean up MOVcc instructions so that TableGen can encode them correctly. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a432a97b62617b8b74219ae60c6c6db5cc5ec7ab 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Clean up branch instructions, so that TableGen can encode branch conditions as well. No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7d052f272d3f9ad0acdebf6811e29d529f70c1e1 22-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add support for TLS in sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
75ddb2bb34f96c2bda48d0e86331fb52b55b8d03 03-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add support for soft long double (fp128).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2f17d0facf6a489a051c86c015453c2b102e5c37 25-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Add long double (f128) instructions to sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b58126124081a9bf8da1368441b00070ed2db232 23-Aug-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use register masks on SPARC call instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e3b29fbc5f4d7632a88b6f470a96cc6ac09e31ed 20-Aug-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Use HWEncoding instead of unused Num field in Sparc register definitions. Also, correct the definitions of RETL and RET instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1799921672835c49f6a29fc27d1840b7c36beabd 08-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc] Delete FPMover Pass and remove Fp* Pseudo-instructions from Sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
01021a8b93989a3c9e17dea540fe66809bf25403 07-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> [Sparc]: Use cmp instruction instead of subcc to compare integers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1e06bcbd633175d75d13aaa5695ca0633ba86068 04-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: No functionality change. Cleanup whitespaces, comment formatting etc.,


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e7cbb792c95cb27a9704551579da19ebcaa06cdb 03-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: Add support for indirect branch and blockaddress in Sparc backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
85cc972a06690507a2660fccb198319b0402105f 03-Jun-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc: When storing 0, use %g0 directly in the store instruction instead of
using two instructions (sethi and store).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
89db6732fbd987a33751f4aff01b8e4b0a630d91 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Implement SPselectfcc for i64 operands.

Also clean up the arguments to all the MOVCC instructions so the
operands always are (true-val, false-val, cond-code).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
00ce0f6512a36ff18fcd223dfebc5469e3600652 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Handle i64 FrameIndex nodes in SPARC v9 mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2c6b5a8d33a650b9a5b838f6bc8887c8f195f944 21-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix the SETHIimm pattern for 64-bit code.

Don't ignore the high 32 bits of the immediate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
ef596e1a80a9790efbc905c57b4e06ba6addb95a 14-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix patterns for 64-bit pointers.

This fixes the pic32 code model for SPARC v9.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0e164884423e9f0f22670015a428946ebf178545 04-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add SPARC v9 support for select on 64-bit compares.

This requires v9 cmov instructions using the %xcc flags instead of the
%icc flags.

Still missing:
- Select floats on %xcc flags.
- Select i64 on %fcc flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
8534e9998c53efae49e4555ba394f39808fb83e0 03-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit compare + branch for SPARC v9.

The same compare instruction is used for 32-bit and 64-bit compares. It
sets two different sets of flags: icc and xcc.

This patch adds a conditional branch instruction using the xcc flags for
64-bit compares.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c3ff3f42ee9a9fb755b0eb0718a31d701b93b3e0 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add 64-bit shift instructions.

SPARC v9 defines new 64-bit shift instructions. The 32-bit shift right
instructions are still usable as zero and sign extensions.

This adds new F3_Sr and F3_Si instruction formats that probably should
be used for the 32-bit shifts as well. They don't really encode an
simm13 field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a10fd6d3d1027b3903d27af701f876e36c1725c0 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add predicates for distinguishing 32-bit and 64-bit modes.

The 'sparc' architecture produces 32-bit code while 'sparcv9' produces
64-bit code.

It is also possible to run 32-bit code using SPARC v9 instructions with:

llc -march=sparc -mattr=+v9

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
fcb25e60f514e4dbceecef73ac229c61d6202ed2 02-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d28e30fcf44b22c897914343fce9061eb62d3b47 24-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Clean up Sparc patterns.

The types of register variables no longer need to be specified in output
patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
15a3c18623a05a8b9f2f4ea0b0c15965fda4fe6f 24-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Give Sparc instruction patterns direct types instead of register classes.

Also update the documentation since Sparc is the nicest backend, and
used as an example in WritingAnLLVMBackend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
edf03820f1d10bbefcb2821e1e0326cad114ed2e 23-Mar-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use direct types in Sparc def : Pat patterns.

The SelectionDAG graph has MVT type labels, not register classes, so
this makes it clearer what is happening.

This notation is also robust against adding more types to the IntRegs
register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
067e5a2a1a3ed35bce7dc9e9b2eedee501db53c9 05-Feb-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Move MRI liveouts to Sparc return instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
02c63803e5ca3132478a984eae54ad2e3919cb4b 24-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Add missing SDNP properties on the flushw node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
31d157ae1ac2cd9c787dc3c1d28e64c682803844 18-Feb-2012 Jia Liu <proljc@gmail.com> Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
58269b973256bf2436cac0f047aa277fe4bc01dd 21-Feb-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Generate correct Sparc32 ABI compliant code for functions that return a struct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e105a3901fecce76e789566ecbfbc87a5b4ce899 22-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Added ICC, FCC as uses of movcc instruction to generate correct code when -mattr=v9 is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
fc3faa75cbadd8a1020941ec85adfda1d2f49688 21-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc backend:
Rename FLUSH to FLUSHW.
Output "ta 3" instead of a "flushw" instruction if v8 instruction set is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
71e39dac0ce9676dd3d0a92164167e18499d40fa 20-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Sparc backend: Implements a delay slot filler that attempt to fill delay slots
with useful instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
860b64cb1efba110bf81bcc243a6fbaae4c655a4 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Implement RETURNADDR and FRAMEADDR lowering in SPARC backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c178308b23f796b6f5c15c8b3f742cc7b3336d6b 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to
ensure %o7 is not assigned as the destination of getpcx instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7d29ffbe5b091fae03afd264d8c8b0090c7a45f4 12-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Fix SPARC backend call instruction so that arguments passed through registers
are correctly marked as used instead of passing all possible argument registers
as used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f27df33b02a85a030aaa4476aee7d1e8fe5921b2 11-Jan-2011 Venkatraman Govindaraju <venkatra@cs.wisc.edu> SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f661277a9b26590648aca585c0572f200470290d 28-Dec-2010 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Multiple SPARC backend fixes: added Y register; updated select_cc, subx, subxcc defs/uses;
and fixed CustomInserter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
036609bd7d42ed1f57865969e059eb7d1eb6c392 23-Dec-2010 Chris Lattner <sabre@nondot.org> Flag -> Glue, the ongoing saga


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4bb862d179486008406ec5025f925bac5493ad0d 17-Aug-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Don't call Predicate_* methods directly from Sparc target.
Modernize predicates a bit.

The Predicate_* methods are not used by TableGen any longer. They are only
emitted for the sake of legacy code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c63a404d56320c25b9510b6b0fb3eda70d619b11 21-Jun-2010 Eric Christopher <echristo@apple.com> Remove isTwoAddress from Sparc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
de3e05fe33e3bc3bb1368418d7ca940ecc04b5f2 19-Mar-2010 Chris Lattner <sabre@nondot.org> tidy up


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
adaace8aa8df16f1fa2b097f32ded38a49d89208 11-Nov-2009 Dan Gohman <gohman@apple.com> Set isBarrier = 1 on return instructions, as they are control barriers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
533297b58da8c74bec65551e1aface9801fc2259 29-Oct-2009 Dan Gohman <gohman@apple.com> Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a
bunch of associated comments, because it doesn't have anything to do
with DAGs or scheduling. This is another step in decoupling MachineInstr
emitting from scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
db486a6d5311944f61b92db9f6074944dbbdb242 15-Sep-2009 Chris Lattner <sabre@nondot.org> several major improvements to the sparc backend: support for weak linkage
and PIC codegen. Patch by Venkatraman Govindaraju!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
765e08d4d5dc3111f547d71da89f58e4e03d295f 26-Aug-2009 Venkatraman Govindaraju <venkatra@cs.wisc.edu> test commit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
825b72b0571821bf2d378749f69d6c4cfb52d2f9 11-Aug-2009 Owen Anderson <resistor@mac.com> Split EVT into MVT and EVT, the former representing _just_ a primitive type, while
the latter is capable of representing either a primitive or an extended type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e50ed30282bb5b4a9ed952580523f2dda16215ac 11-Aug-2009 Owen Anderson <resistor@mac.com> Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
98ca4f2a325f72374a477f9deba7d09e8999c29b 05-Aug-2009 Dan Gohman <gohman@apple.com> Major calling convention code refactoring.

Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.

This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.

This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e563bbc312f8b11ecfe12b8187176f667df1dff3 12-Oct-2008 Chris Lattner <sabre@nondot.org> Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's as
parameters instead of raw Constants. This prevents the constants from
being selected by the isel pass, fixing PR2735.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f5aeb1a8e4cf272c7348376d185ef8d8267653e0 12-Sep-2008 Dan Gohman <gohman@apple.com> Rename ConstantSDNode::getValue to getZExtValue, for consistency
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
da47e6e0d003c873da960361549e57ee4617c301 15-Mar-2008 Evan Cheng <evan.cheng@apple.com> Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
704df9fcbddd8bd6f358bef688ef51f8540dce4d 14-Mar-2008 Dan Gohman <gohman@apple.com> Use SDTNone instead of duplicating it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6ef781f3ce0d0311004adba9d1e7dbd7950918dd 27-Feb-2008 Bill Wendling <isanbard@gmail.com> Final de-tabification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
ddf89566a93081cb230bb9406a72ab2d3eada4a7 17-Jan-2008 Chris Lattner <sabre@nondot.org> This commit changes:

1. Legalize now always promotes truncstore of i1 to i8.
2. Remove patterns and gunk related to truncstore i1 from targets.
3. Rename the StoreXAction stuff to TruncStoreAction in TLI.
4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions.
5. Mark a wide variety of invalid truncstores as such in various targets, e.g.
X86 currently doesn't support truncstore of any of its integer types.
6. Add legalize support for truncstores with invalid value input types.
7. Add a dag combine transform to turn store(truncate) into truncstore when
safe.

The later allows us to compile CodeGen/X86/storetrunc-fp.ll to:

_foo:
fldt 20(%esp)
fldt 4(%esp)
faddp %st(1)
movl 36(%esp), %eax
fstps (%eax)
ret

instead of:

_foo:
subl $4, %esp
fldt 24(%esp)
fldt 8(%esp)
faddp %st(1)
fstps (%esp)
movl 40(%esp), %eax
movss (%esp), %xmm0
movss %xmm0, (%eax)
addl $4, %esp
ret



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6e141fd04897e5eb4925bb6351297170ebd8a756 13-Dec-2007 Evan Cheng <evan.cheng@apple.com> Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c69107ca11282a905c252d1b62091951087f13dc 13-Nov-2007 Bill Wendling <isanbard@gmail.com> Unifacalize the CALLSEQ{START,END} stuff.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0f8d9c04d9feef86cee35cf5fecfb348a6b3de50 13-Nov-2007 Bill Wendling <isanbard@gmail.com> Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).

This can only result in tears...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
071a279e94e30d51aff3b46a4651d686982488a0 11-Sep-2007 Evan Cheng <evan.cheng@apple.com> Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
ffbaccae029ac238972e3814967260f029b6058a 21-Jul-2007 Evan Cheng <evan.cheng@apple.com> No more noResults.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
64d80e3387f328d21cd9cc06464b5de7861e3f27 19-Jul-2007 Evan Cheng <evan.cheng@apple.com> Change instruction description to split OperandList into OutOperandList and
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
56fe5276ef0f64015b2fa9377fe8c81a00047533 04-Nov-2006 Chris Lattner <sabre@nondot.org> remove redundant/dead vars


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
8b2794aeff151be8cdbd44786c1d0f94f8f2e427 13-Oct-2006 Evan Cheng <evan.cheng@apple.com> Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
740c2e079929d1204edc0712cc49dc267076025b 12-Oct-2006 Chris Lattner <sabre@nondot.org> adjcallstackup/down clobbers the stack pointer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
af9db75943c11eebd642c1645d3c3f4003fe37e3 11-Oct-2006 Evan Cheng <evan.cheng@apple.com> Add properties to ComplexPattern.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
466685d41a9ea4905b9486fea38e83802e46f196 09-Oct-2006 Evan Cheng <evan.cheng@apple.com> Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
aca36b932958a7e4a27786dd76e37259fbaa67e0 02-Sep-2006 Chris Lattner <sabre@nondot.org> Use a couple of multiclass patterns to factor some integer ops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1662239a5eb745de7b683b034ea199cb984328f2 02-Sep-2006 Chris Lattner <sabre@nondot.org> remove a bunch of comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bb7b844bec6c53ac29ac4c50d7b3963e7f193efb 11-Aug-2006 Evan Cheng <evan.cheng@apple.com> CALLSEQ_* produces chain even if that's not needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4c15e3394671a87fbbbf21362079d11a4221654c 09-May-2006 Chris Lattner <sabre@nondot.org> Some notes and thoughts to myself


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2deb87f201b5cf06edff12b9d9a03adc658ec416 21-Feb-2006 Chris Lattner <sabre@nondot.org> The HasNoV9 hack isn't needed here, now that tblgen knows that CustomDAGSchedInserter
instructions are expensive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
551bf3f80058a026b6a128dffd5530019e1df1b9 17-Feb-2006 Nate Begeman <natebegeman@mac.com> kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC
and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
ad7a3e62085f776ec87e857e769e210a89a0d544 10-Feb-2006 Chris Lattner <sabre@nondot.org> Use the auto-generated call matcher. Remove a broken impl of the frameaddr/returnaddr
intrinsics.

Autogen frameindex matcher


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f613fcb74161d63dd8c4f5fc1dc0d7527a18f43e 10-Feb-2006 Chris Lattner <sabre@nondot.org> Update to new-style flags usage, simplifying the .td file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
9413678f91f4789902b69c4dc18b7205e95b0224 09-Feb-2006 Chris Lattner <sabre@nondot.org> add an option to turn on LSR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7c90f73a1b06040d971a3dd95a491031ae6238d5 05-Feb-2006 Chris Lattner <sabre@nondot.org> Rename SPARC V8 target to be the LLVM SPARC target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c8c0bb00a31381a8a2f838f53d72d230e9c77134 02-Feb-2006 Chris Lattner <sabre@nondot.org> %fcc is not an alias for %fcc0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4032cf049d702545d7498d6b10e1d241037e2030 02-Feb-2006 Chris Lattner <sabre@nondot.org> correct an opcode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
af370f7c0c9dc10eb93efcdfe1016ba2f86c047b 31-Jan-2006 Chris Lattner <sabre@nondot.org> add conditional moves of float and double values on int/fp condition codes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7a4d2913ea04b708c191595ad6f1841abd36b077 31-Jan-2006 Chris Lattner <sabre@nondot.org> treat conditional branches the same way as conditional moves (giving them
an operand that contains the condcode), making things significantly simpler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6788faa06ad77fbfb57db7bcf8bc6a79389775a6 31-Jan-2006 Chris Lattner <sabre@nondot.org> compactify all of the integer conditional moves into one instruction that takes
a CC as an operand. Much smaller, much happier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
97f91027e662a140b2927c8b84b8f1563a102434 31-Jan-2006 Chris Lattner <sabre@nondot.org> Add immediate forms of integer cmovs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
749d6fadf8ac410bb4083a3467ea9f0429c30455 31-Jan-2006 Chris Lattner <sabre@nondot.org> Shrinkify


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6dc83c777db605209aaa707bb23bd49dc8770228 31-Jan-2006 Chris Lattner <sabre@nondot.org> Add the full complement of conditional moves of integer registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3772bcb33347f9e3615f3854c82323fa53e5765f 30-Jan-2006 Chris Lattner <sabre@nondot.org> Revamp the ICC/FCC reading instructions to be parameterized in terms of the
SPARC condition codes, not in terms of the DAG condcodes. This allows us to
write nice clean patterns for cmovs/branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
9072c05cd8b1739244d8c669fb92c3415d01dccc 30-Jan-2006 Chris Lattner <sabre@nondot.org> Compile:

uint %test(uint %X) {
%Y = call uint %llvm.ctpop.i32(uint %X)
ret uint %Y
}

to:

test:
save -96, %o6, %o6
sll %i0, 0, %l0
popc %l0, %i0
restore %g0, %g0, %g0
retl
nop

instead of to 40 logical ops. Note the shift-by-zero that clears the top
part of the 64-bit V9 register.

Testcase here: CodeGen/SparcV8/ctpop.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b34d3fd4cf8f7882afd320b83f564146875d5116 30-Jan-2006 Chris Lattner <sabre@nondot.org> When in v9 mode, emit fabsd/fnegd/fmovd


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
76afdc9a80cf078aebd0ec62dba0bfafe498b1dc 30-Jan-2006 Chris Lattner <sabre@nondot.org> First step towards V9 instructions in the V8 backend, two conditional move
patterns. This allows emission of this code:

t1:
save -96, %o6, %o6
subcc %i0, %i1, %l0
move %icc, %i0, %i2
or %g0, %i2, %i0
restore %g0, %g0, %g0
retl
nop

instead of this:

t1:
save -96, %o6, %o6
subcc %i0, %i1, %l0
be .LBBt1_2 !
nop
.LBBt1_1: !
or %g0, %i2, %i0
.LBBt1_2: !
restore %g0, %g0, %g0
retl
nop

for this:

int %t1(int %a, int %b, int %c) {
%tmp.2 = seteq int %a, %b
%tmp3 = select bool %tmp.2, int %a, int %c
ret int %tmp3
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
44ea7b1a6cc96121f9a558902742e19fa876d847 28-Jan-2006 Chris Lattner <sabre@nondot.org> Use V8ISD::CALL instead of ISD::CALL


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
cedc6f4b30c1fd5f7ad1df0b65b870e6f107e8ff 27-Jan-2006 Chris Lattner <sabre@nondot.org> PHI and INLINEASM are now built-in instructions provided by Target.td


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4fca01731a86dbbd758eaf94e4c7edfa36d38db7 15-Jan-2006 Chris Lattner <sabre@nondot.org> Don't print a label for the first MBB in a function.

Compile this:

%_2E_str_8 = external global [75 x sbyte]
implementation ; Functions:
declare int %printf(sbyte*, ...)
void %test()
%tmp.101 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([75 x sbyte]* %_2E_str_8, int 0, int 0) ) ; <int> [#uses=0]
unreachable
}

to this:

main_endif_2E_8:
save -96, %o6, %o6
sethi %hi(_2E_str_8), %l0
add %l0, %lo(_2E_str_8), %o0
call printf
nop

instead of this:

main_endif_2E_8:
save -96, %o6, %o6
sethi %hi(_2E_str_8), %l0
or %g0, %lo(_2E_str_8), %l1 ;; extra instruction
add %l1, %l0, %o0
call printf
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4bb91024ac2dcdff363488617ffcfb3b5c99fc49 12-Jan-2006 Chris Lattner <sabre@nondot.org> Fix branches on FP compares


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b9169ceb23367c177c26113dcc589d3f5c584182 11-Jan-2006 Chris Lattner <sabre@nondot.org> Use Evan's outflag stuff to implement V8cmpicc. This allows us to write a
pattern for SUBCCrr, and makes it trivial to add support for SUBCCri, eliminating
an instruction in the common "setcc X, imm" case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1b8af84a8448b7803695f86785944fb3d0b75eb1 11-Jan-2006 Chris Lattner <sabre@nondot.org> Unbreak ret void :-/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bda559e1158497706a7a44bffc0ca307dd9cad28 11-Jan-2006 Chris Lattner <sabre@nondot.org> Write this pattern in canonical form, allowing more patterns to match.
This implements Regression/CodeGen/SparcV8/xnor.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6da8d99f70826552b3a4e7bd5d1376881574b4b1 09-Jan-2006 Evan Cheng <evan.cheng@apple.com> New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace
hasInFlag, hasOutFlag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2b4ea795a23ff9d900b9e1f26c92975ef78db1b6 26-Dec-2005 Evan Cheng <evan.cheng@apple.com> Added field noResults to Instruction.
Currently tblgen cannot tell which operands in the operand list are results so
it assumes the first one is a result. This is bad. Ideally we would fix this
by separating results from inputs, e.g. (res R32:$dst),
(ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding
'let noResults = 1' is the workaround to tell tblgen that the instruction does
not produces a result. It works for now since tblgen does not support
instructions which produce multiple results.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
171049d10f71fdeffdfd9592243d7af40db86c71 23-Dec-2005 Evan Cheng <evan.cheng@apple.com> * Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag operand (return void is not
lowered so it does not have a flag operand.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3cb7187d5f217dc7ecfff36357b0dd754fd0ae3b 23-Dec-2005 Chris Lattner <sabre@nondot.org> fix the int<->fp instructions, which apparently take a single float register
to represent the int part (because it's always 32-bits)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a01c0ccb63c9c585141c925ae408d83f445350f6 22-Dec-2005 Chris Lattner <sabre@nondot.org> clean up .td file by using evan's new FLAG thing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bcfdec73d1e9d4b6f398a9a13b7795c01a89f0f2 19-Dec-2005 Chris Lattner <sabre@nondot.org> Correct bool truncstore operand order


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e2d97f8399d1d1072a926f9911f3d82f7730358d 19-Dec-2005 Chris Lattner <sabre@nondot.org> add the other bool zextload as well


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a1251f24b5399bb8a0aabe778f8d0188a870d3c4 19-Dec-2005 Chris Lattner <sabre@nondot.org> implement zextload bool


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
96d5bb79d49b4ec67aa9a44af2d7f41bcfbab1d3 19-Dec-2005 Chris Lattner <sabre@nondot.org> Fix syntax for indirect calls. This fixes Olden/mst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
97561fc2eb1cdccf482ea0f55b86f86b1def22e3 19-Dec-2005 Chris Lattner <sabre@nondot.org> apparently rdy isn't actually a psuedo instruction. Use rd %y


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
beecfd2b2dc94b2b164f40c4443cc0506f228ed7 19-Dec-2005 Chris Lattner <sabre@nondot.org> add fneg/fabs support for doubles


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f53d0bfbfd501d752fe313725083d1f295e30ba7 19-Dec-2005 Chris Lattner <sabre@nondot.org> add bool truncstores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7a48e5018b10d2b4c123913b40df904bd5c66043 19-Dec-2005 Chris Lattner <sabre@nondot.org> Configure the asmwriter to allow constant pools to be printed correctly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b04c5c8eb2f0574c473036f1e66086a771663300 19-Dec-2005 Chris Lattner <sabre@nondot.org> add support for integer extloads


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
20ad53ffd770a4012dcb3be7ee1a393d30337c4e 19-Dec-2005 Chris Lattner <sabre@nondot.org> Add support for undef


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
dab05f0e194ac06c2c733f18a698b707dfa99ec3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Change return lowering so that we can autogen the matching code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2db3ff66f1183fa65bd5102ad255a798f76cb3b2 18-Dec-2005 Chris Lattner <sabre@nondot.org> Implement Calls for V8. This would be completely autogenerated except for
a small bug in tblgen. When that is fixed, we can remove the ISD::Call case
in Select.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
eee99bd459ab17a498d076f27de313398b9d3d4d 18-Dec-2005 Chris Lattner <sabre@nondot.org> Push ops list, asm string, and pattern all the way up to InstV8. Move the
InstV8 class to the InstrFormats file where it belongs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3308449afc6f1b8b8536e544e53bc6751c91b4e3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Give V8 select_cc, in the spirit of the PPC backend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
98f853698c5a68d06934c1b7560f3ab53261d311 18-Dec-2005 Chris Lattner <sabre@nondot.org> remove some unused instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
8fa54dc70239dc08cc3c93cb7513e0625be50eb4 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add frameindex support
Add support for copying (e.g. returning) doubles
Add support for F<->I instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
76acc872b3c63c26a83c2832ece6fa9b04786f24 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add constant pool support, including folding into addresses.
Pretty print addresses a bit, to not print [%r1+%g0]: just print [%r1]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e357246c6b2f71fda64764b85e32d2004f5dd603 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add initial support for global variables, and fix a bug in addr mode selection
where we didn't select the operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
04dd673aea8676443bf8cf8875b0e80bfa1309a5 18-Dec-2005 Chris Lattner <sabre@nondot.org> Claiming that branch targets are registers is not very wholesome. Change them
to be basic blocks. Also, add uncond branches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
456b9400dc7aecc6875f521fd4bc87d25c32865b 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add unordered comparisons


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
5b2dfc7cc15d95678a1830485cc85a36e2190ce8 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns to the rest of the int condbranches and some of the fp branches


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4d55aca87aeac108980005912d8ea8733d6226e1 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add initial conditional branch support. This doesn't actually work yet due
to a bug in the scheduler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
38abcb500fbb868514d83152cc178ecf2d7ba6e4 18-Dec-2005 Chris Lattner <sabre@nondot.org> Eliminate CMPri, which is a synonym for SUBCCri


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
294974bd576c381d66af6e73159d0574af81d405 18-Dec-2005 Chris Lattner <sabre@nondot.org> add fneg,fabs,fsqrt instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b4d5172af93533e3325b647dd257810b236337aa 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for fround/fextend and the funny fsmuld instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
10c6aed73c79861c31e79402d2161821806efe6f 18-Dec-2005 Chris Lattner <sabre@nondot.org> Add FP +,-,*,/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
558bfe0cf5392d7f8d48647ed1d88fd0f530c4c3 18-Dec-2005 Chris Lattner <sabre@nondot.org> Give patterns to F3_3 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
37949f5c2b48c128e31361f638fdd44c966ee4d0 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for multiply, simplify Y register handling stuff, add RDY instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
9034b883a463b37dbc4766ff7243dac3a27d0b11 17-Dec-2005 Chris Lattner <sabre@nondot.org> Make the addressing modes smarter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
87a63f812c824116bef0aaa5a034bd7adf77eae8 17-Dec-2005 Chris Lattner <sabre@nondot.org> remove some unused instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
2cfdbb27165ee24b28a84f1a7cd3196b7afd2a5e 17-Dec-2005 Chris Lattner <sabre@nondot.org> add andn/orn/xorn patterns. This allows us to compile this:

long %test(ubyte, short, long %X, long %Y) {
%A = xor long %X, -1
%B = and long %Y, %A
ret long %B
}

to this:

test:
save -96, %sp, %sp
andn %i4, %i2, %i0
andn %i5, %i3, %i1
restore %g0, %g0, %g0
retl
nop

instead of this:

test:
save -96, %sp, %sp
xor %i2, -1, %l0
xor %i3, -1, %l1
and %i4, %l0, %i0
and %i5, %l1, %i1
restore %g0, %g0, %g0
retl
nop

The simpleisel emits: :(

test:
save -96, %sp, %sp
or %g0, -1, %l0
or %g0, -1, %l0
or %g0, -1, %l0
or %g0, -1, %l1
xor %i2, %l0, %l0
xor %i3, %l1, %l1
and %i4, %l0, %i0
and %i5, %l1, %i1
restore %g0, %g0, %g0
retl
nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
53ec2035eb686c25013d47405fd0b178b60d59c8 17-Dec-2005 Chris Lattner <sabre@nondot.org> add patterns for FP stores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d55e1ca5ef96821d8c96da6f0d79e3f96d810cdd 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add [reg+reg] integer stores


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d30a63063617d3ef6907ed4a5a2bbf9fa22b7d7c 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add store patterns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b575baf57d49bc53883544b4585e25ae4585ab3f 17-Dec-2005 Chris Lattner <sabre@nondot.org> add fp load patterns, switch rest of loads and stores to use addrmodes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1963783fab96e91cfcba59a4fa08d132040f0a7a 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add integer load[r+r] forms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
84e2abf116c236d9493995e65259f1352a925239 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add patterns for the rest of the loads. Add 'ri' suffixes to the load and store insts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bc83fd96721eda272d90eafcb3a2a31ef9a2c366 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add basic addressing mode support and one load.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b71f9f8488f665ef042097eca28aeddb85e6c2ee 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use a combination of sethi and or to build arbitrary immediates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
57dd3bc46049c528858cdd02f76149d9525199fa 17-Dec-2005 Chris Lattner <sabre@nondot.org> Use sethi to build large immediates with zeros at the bottom


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d2cd46676c697137be7b57c04e3615ba2cdc00b2 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add shift and small immediate support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f83cee6ac196faf14944948034f3163023a315cd 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add some basic reg-reg instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e33a3ff942d33edfb619867c84b1d4589d3a582d 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add empty patterns to all F3_1 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7b0902dcf8352ef93e35cc9cf264dbe4d2a198de 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add some simple integer patterns. This allows us to compile this:

int %test(int %A) {
%B = add int %A, 1
%C = xor int %B, 123
ret int %C
}

into this:

test:
save -96, %sp, %sp
add %i0, 1, %l0
xor %l0, 123, %i0
restore %g0, %g0, %g0
retl
nop

for example. I guess it would make sense to add reg/reg versions too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bc3d362d5bae59eb45ce275d8c4d9372847369dc 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add a pattern for 'ret'. This now compiles:

void %test() { ret void }

:)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f3bf50d2c80da2d45b22e5c2458048c860754736 17-Dec-2005 Chris Lattner <sabre@nondot.org> Add empty patterns for F3_2 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0d8fcd3218ed93e338a2e7b845f358f1c6f74d58 17-Dec-2005 Chris Lattner <sabre@nondot.org> Convert the remaining instructions over, branches and calls. Fix a couple
minor bugs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
dc6938ac23f49c35ac551b6f5541e926a357de1b 17-Dec-2005 Chris Lattner <sabre@nondot.org> convert FP instructions to use an asmstring and operand list, allowing FP
programs to work on V8 again


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
13e1501c91e3e56740a59eb7dab173c1d0cf5765 16-Dec-2005 Chris Lattner <sabre@nondot.org> Add a couple more instrs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
17392e026a2f1fa9b62e38c44a447874055892bc 16-Dec-2005 Chris Lattner <sabre@nondot.org> asmprint pseudo instrs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d4f2ab5e0059f8398a7882d6c6be50341641b97b 16-Dec-2005 Chris Lattner <sabre@nondot.org> Autogenerate asmprinter for F3_2 instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
1c4f4356032195f05c715b113b4ee5e2d4909915 16-Dec-2005 Chris Lattner <sabre@nondot.org> Switch F3_1 instructions over to use AsmStrings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
96b84beb77d5209d2d5db4db9a6dc07461de2f7e 16-Dec-2005 Chris Lattner <sabre@nondot.org> Add operand info for F3_[12] instructions, getting V8 back to basic functionality.
With this, Regression/CodeGen/SparcV8/basictest.ll now passes. Lets hear it
for regression tests :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3ff57516839433131dd537ed2708a3e23f88ae77 16-Dec-2005 Chris Lattner <sabre@nondot.org> add some simple operand info


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c2e5f3635aa0cd9d10ca4315eec0ed7f161d55f5 10-Dec-2004 Brian Gaeke <gaeke@uiuc.edu> Add the rest of the multiply instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
82a4795850d694b010b3dac0f48d9468496aa243 23-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add the rest of the logical instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4351857d78c6604b1f5dd7a83be2a8cc869ae423 21-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Add all the rest of the ADD and SUB variants, some of which are important for
64-bit support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
b354b7148eadcd5d30ceac80a2ddc1bbdfffbaef 16-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Correct the implicit-defs information for indirect and direct calls.
You can't have implicit defs that overlap explicit defs, or implicit
defs that alias one another.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f28688e5273d674f5f4ff1c133ce6512d289ead1 15-Nov-2004 Brian Gaeke <gaeke@uiuc.edu> Expand Defs to encompass all the possibly-call-clobbered regs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d36047dbdb830c3ec659681c99f0348001b57653 15-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> The field is called `imm22', not simply `imm'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7 15-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Synthetic instructions RET and RETL need to have all 3 parameters specified


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
59e12ed78962266a9529e58560aeb57330c67d38 14-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Add FSTOI, FDTOI (fp to integer cast) instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
9f0cecd4385d778c20859ad18ee43389e1337b33 10-Oct-2004 Brian Gaeke <gaeke@uiuc.edu> Model calls as *both* using *and* killing O0..O5, because callees use the
argument values passed in (so they're not dead until *after* the call),
and callees are free to modify those registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
d7bf501cc732f8ddcc30a6bd68d2fdbfe0f2145f 30-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Mark the instructions that have delay slots with the hasDelaySlot flag.
Add some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
374b36d5cf56e070ed7a557314616fc48711d8ea 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Tell the target description that calls clobber registers O0...O5.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
22ad67dd68d381f9b324b7fef13f15a80c71e9ef 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> FITOD is spelled "fitod", not "fitos". Ouch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a036b539293faa39f373ac1f2ff6fdebad5290e3 29-Sep-2004 Brian Gaeke <gaeke@uiuc.edu> Add new FpMOVD pseudo-instruction, used to move doubles around.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c42077d37194a1872dc402522d4d7a0e81f83047 22-Sep-2004 Misha Brukman <brukman+llvm@gmail.com> Combine the F2 and F3 instruction classes into one file for simplicity


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
812402019264506bea49749b23d0ead1be9fde7c 09-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> Remove ClassPrefix variable as it's no longer used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0b9bbd2244e5f518361cb0f73279b5ccb8e6ee25 09-Aug-2004 Misha Brukman <brukman+llvm@gmail.com> The (future) SparcV8 JIT would do well to have a class prefix.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
0f6eab32d0b8880cde65a755e33e2c3a0b7d4ff6 31-Jul-2004 Chris Lattner <sabre@nondot.org> I'm pretty sure that ba is branch always, which is a barrier. Brg should
check this :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
7c4676f341a1abfe555e78fb2aac0a2d7cbe85cf 16-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add a class for pseudo-instructions. Use it.
Add IMPLICIT_USE and IMPLICIT_DEF, a la X86.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
4185d03dc5290550f0bad33764f3971ec9a74132 08-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> Add floating-point branches and compares. Compares don't complete
until the next cycle, and there's no interlock, so they effectively
have a delay slot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c53105c749faa681b9471bf99a762ed17b35264d 28-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add FITOS, FITOD, and F{ADD,SUB,MUL,DIV}{S,D}.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
57ff2e3ee711c8d6ab908c6f03d5806b34d910f0 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add FSTOD and FDTOS conversion instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e7f9e0b539f5bbd728cd806d25b7050109ae55dd 24-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.
Add fp stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
f89cc655ab27bab517751f010c15fbe2ae1051d8 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Fix jmpl.
Add some FP moves.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
562d5b0f6ddd341b5755829c636be82eaf31625c 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Add load instructions for floating-point registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
070bb4a8da5dcedcdf225aca857711bb4f754fa1 18-Jun-2004 Brian Gaeke <gaeke@uiuc.edu> Set the isBranch and isTerminator flags on branch instructions correctly.
Add a FIXME about the (currently unused) JMPL instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
59dbff714cc44993a16522de15e89c56c604449d 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add a bunch more branches


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6b1d2fa1d1cae181707d05b26c5e2e02c77eaa06 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add ADD with immediate


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
c3e970122a942dc46b0be1fb1d0ca757a711911d 08-May-2004 Brian Gaeke <gaeke@uiuc.edu> Add forms of CMP, SUBCC, and a few branches, and some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
6179047661ae9d2291ef58147934a2630591b126 07-Apr-2004 Chris Lattner <sabre@nondot.org> andd subcc instructions which is used to create the 'cmp' pseudo instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a562efce355618a02a23ebd3e26d277b26d4e8d5 07-Apr-2004 Chris Lattner <sabre@nondot.org> Fix encoding of existing shift instructions, add rr shifts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
22ede709f6e62c495fe8af97dc8e81e82d5faeed 07-Apr-2004 Chris Lattner <sabre@nondot.org> Add a bunch more instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e88c9dc860dd636e38abdb4aab6e4fc8fff1cc27 07-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add UDIV, SDIV, and a few variants of WR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
8542e08d15208d73c5146d6858d67b26effaf4ef 02-Apr-2004 Brian Gaeke <gaeke@uiuc.edu> Add load, store, and NOP instructions.
Fix up comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
032f80fbf1c3eb270cbbf551f73468513fd175e1 16-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Add UMULrr and SMULrr instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a8056fabebbc23c080b7cda81ca8f74eedc1a585 06-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Sort stanzas into Sparc V8 book page number order.
Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
775158d62abbe2548875b46dcbecf8b234930dd4 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Subtract instructions; minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
e806173ab6f571f48e8b056fbd355ccef4371a23 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Simple copyConstantToReg support, SETHIi and ORri


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
bc1d27aa6e80022d507ce4811566b4af4257ee45 04-Mar-2004 Brian Gaeke <gaeke@uiuc.edu> Support add - note, still missing important copyConstantToRegister stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td
a85d46eea8f7eba8be2e9724c099abda68dbb20a 28-Feb-2004 Chris Lattner <sabre@nondot.org> Tab completion is our friend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Sparc/SparcInstrInfo.td