llvm-6502/test/CodeGen/PowerPC
Hal Finkel fb6fe0aea2 Fix PPC64 CR spill location for callee-saved registers
This fixes an ABI bug for non-Darwin PPC64. For the callee-saved condition
registers, the spill location is specified relative to the stack pointer (SP +
8). However, this is not relative to the SP after the new stack frame is
established, but instead relative to the caller's stack pointer (it is stored
into the linkage area of the parent's stack frame).

So, like with the link register, we don't directly spill the CRs with other
callee-saved registers, but just mark them to be spilled during prologue
generation.

In practice, this reverts r179457 for PPC64 (but leaves it in place for PPC32).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179500 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-15 02:07:05 +00:00
..
2004-11-29-ShrCrash.ll
2004-11-30-shift-crash.ll
2004-11-30-shr-var-crash.ll
2004-12-12-ZeroSizeCommon.ll
2005-01-14-SetSelectCrash.ll
2005-01-14-UndefLong.ll
2005-08-12-rlwimi-crash.ll
2005-09-02-LegalizeDuplicatesCalls.ll
2005-10-08-ArithmeticRotate.ll
2005-11-30-vastart-crash.ll
2006-01-11-darwin-fp-argument.ll
2006-01-20-ShiftPartsCrash.ll
2006-04-01-FloatDoubleExtend.ll
2006-04-05-splat-ish.ll
2006-04-19-vmaddfp-crash.ll
2006-05-12-rlwimi-crash.ll
2006-07-07-ComputeMaskedBits.ll
2006-07-19-stwbrx-crash.ll
2006-08-11-RetVector.ll
2006-08-15-SelectionCrash.ll
2006-09-28-shift_64.ll
2006-10-13-Miscompile.ll
2006-10-17-brcc-miscompile.ll
2006-10-17-ppc64-alloca.ll
2006-11-10-DAGCombineMiscompile.ll
2006-11-29-AltivecFPSplat.ll
2006-12-07-LargeAlloca.ll
2006-12-07-SelectCrash.ll
2007-01-04-ArgExtension.ll
2007-01-15-AsmDialect.ll
2007-01-29-lbrx-asm.ll
2007-01-31-InlineAsmAddrMode.ll
2007-02-16-AlignPacked.ll
2007-02-16-InlineAsmNConstraint.ll
2007-02-23-lr-saved-twice.ll
2007-03-24-cntlzd.ll
2007-03-30-SpillerCrash.ll
2007-04-24-InlineAsm-I-Modifier.ll
2007-04-30-InlineAsmEarlyClobber.ll
2007-05-03-InlineAsm-S-Constraint.ll
2007-05-14-InlineAsmSelectCrash.ll
2007-05-22-tailmerge-3.ll
2007-05-30-dagcombine-miscomp.ll
2007-06-28-BCCISelBug.ll
2007-08-04-CoalescerAssert.ll
2007-09-04-AltivecDST.ll Protect PPC Altivec patterns with a predicate 2013-03-15 13:21:21 +00:00
2007-09-07-LoadStoreIdxForms.ll Use virtual base registers on PPC 2013-04-09 17:27:09 +00:00
2007-09-08-unaligned.ll
2007-09-11-RegCoalescerAssert.ll
2007-09-12-LiveIntervalsAssert.ll
2007-10-16-InlineAsmFrameOffset.ll
2007-10-18-PtrArithmetic.ll
2007-10-21-LocalRegAllocAssert2.ll
2007-10-21-LocalRegAllocAssert.ll
2007-11-04-CoalescerCrash.ll
2007-11-16-landingpad-split.ll
2007-11-19-VectorSplitting.ll
2008-02-05-LiveIntervalsAssert.ll
2008-02-09-LocalRegAllocAssert.ll
2008-03-05-RegScavengerAssert.ll
2008-03-17-RegScavengerCrash.ll
2008-03-18-RegScavengerAssert.ll
2008-03-24-AddressRegImm.ll
2008-03-24-CoalescerBug.ll
2008-03-26-CoalescerBug.ll
2008-04-10-LiveIntervalCrash.ll
2008-04-16-CoalescerBug.ll
2008-04-23-CoalescerCrash.ll
2008-05-01-ppc_fp128.ll
2008-06-19-LegalizerCrash.ll
2008-06-21-F128LoadStore.ll
2008-06-23-LiveVariablesCrash.ll
2008-07-10-SplatMiscompile.ll SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. 2013-02-04 15:19:18 +00:00
2008-07-15-Bswap.ll
2008-07-15-Fabs.ll
2008-07-15-SignExtendInreg.ll
2008-07-17-Fneg.ll
2008-07-24-PPC64-CCBug.ll
2008-09-12-CoalescerBug.ll
2008-10-17-AsmMatchingOperands.ll
2008-10-28-f128-i32.ll
2008-10-28-UnprocessedNode.ll
2008-10-31-PPCF128Libcalls.ll
2008-12-02-LegalizeTypeAssert.ll
2008-12-12-EH.ll
2009-01-16-DeclareISelBug.ll
2009-03-17-LSRBug.ll
2009-05-28-LegalizeBRCC.ll
2009-07-16-InlineAsm-M-Operand.ll
2009-08-17-inline-asm-addr-mode-breakage.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
2009-08-23-linkerprivate.ll
2009-09-18-carrybit.ll
2009-11-15-ProcImpDefsBug.ll
2009-11-25-ImpDefBug.ll
2010-02-04-EmptyGlobal.ll
2010-02-12-saveCR.ll Cleanup PPC CR-spill kill flags and 32- vs. 64-bit instructions 2013-03-28 03:38:16 +00:00
2010-03-09-indirect-call.ll
2010-04-01-MachineCSEBug.ll
2010-05-03-retaddr1.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
2010-10-11-Fast-Varargs.ll
2010-12-18-PPCStackRefs.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
2011-12-05-NoSpillDupCR.ll
2011-12-06-SpillAndRestoreCR.ll
2011-12-08-DemandedBitsMiscompile.ll
2012-09-16-TOC-entry-check.ll This patch is in preparation for adding medium code model support to the 2012-11-14 23:23:27 +00:00
2012-10-11-dynalloc.ll Do not consider a machine instruction that uses and defines the same 2012-11-13 18:40:58 +00:00
2012-10-12-bitcast.ll llvm/test/CodeGen/PowerPC/2012-10-12-bitcast.ll: Try to fix failure on non-ppc hosts, to add -mattr=+altivec. 2012-10-12 16:01:08 +00:00
2012-11-16-mischedcall.ll Use a full triple for a PPC test case for asm syntax. 2012-11-18 06:21:03 +00:00
a2-fp-basic.ll
a2q-stackalign.ll PPC QPX requires a 32-byte aligned stack 2013-01-30 23:43:27 +00:00
a2q.ll Add definitions for the PPC a2q core marked as having QPX available 2013-01-30 21:17:42 +00:00
addc.ll
addi-reassoc.ll
align.ll
allocate-r0.ll Allocate r0 on PPC 2013-03-27 06:52:27 +00:00
and_add.ll
and_sext.ll
and_sra.ll
and-branch.ll
and-elim.ll
and-imm.ll
anon_aggr.ll Fix bug 14779 for passing anonymous aggregates [patch by Kai Nacke]. 2013-02-20 17:31:41 +00:00
asm-Zy.ll Add support for the PowerPC-specific inline asm Z constraint and y modifier. 2012-11-05 18:18:42 +00:00
asym-regclass-copy.ll Fix a register-class comparison bug in PPCCTRLoops 2013-03-21 23:23:34 +00:00
atomic-1.ll Print PPC ZERO as 0 (not r0) even on Darwin 2013-03-27 13:20:52 +00:00
atomic-2.ll Expand PPC64 atomic load and store 2012-12-25 17:22:53 +00:00
Atomics-32.ll
Atomics-64.ll
available-externally.ll PPC: MCize most of the darwin PIC emission. 2012-11-24 13:18:25 +00:00
bdzlr.ll Manually remove successors in if conversion when CopyAndPredicateBlock is used 2013-04-10 22:05:25 +00:00
big-endian-actual-args.ll
big-endian-call-result.ll
big-endian-formal-args.ll
branch-opt.ll
bswap-load-store.ll Specify CPUs on the PPC bswap-load-store test 2013-03-28 20:35:18 +00:00
buildvec_canonicalize.ll test/CodeGen/PowerPC: Add explicit -march=ppc32. 2012-11-30 13:28:31 +00:00
calls.ll
can-lower-ret.ll
cmp-cmp.ll
coalesce-ext.ll On PowerPC64, integer return values (as well as arguments) are supposed 2012-11-05 19:39:45 +00:00
compare-duplicate.ll
compare-simm.ll
complex-return.ll This patch fixes the PPC calling convention to handle returns of 2013-01-17 17:45:19 +00:00
constants.ll
cr1eq-no-extra-moves.ll
cr1eq.ll
cr_spilling.ll
cr-spills.ll Cleanup PPC CR-spill kill flags and 32- vs. 64-bit instructions 2013-03-28 03:38:16 +00:00
crsave.ll Fix PPC64 CR spill location for callee-saved registers 2013-04-15 02:07:05 +00:00
ctr-cleanup.ll Cleanup initial-value constants in PPCCTRLoops 2013-03-18 17:40:27 +00:00
ctrloop-reg.ll
ctrloop-s000.ll
ctrloop-sums.ll
ctrloops.ll
cttz.ll Fix PowerPC/cttz.ll to specify a cpu (and use FileCheck) 2013-04-01 16:31:56 +00:00
darwin-labels.ll
dbg.ll Remove unused field in DISubprogram 2013-03-21 20:28:52 +00:00
DbgValueOtherTargets.test Remove unnecessary leading comment characters in lit-only file 2013-03-18 22:08:16 +00:00
dcbt-sched.ll Loosen scheduling restrictions on the PPC dcbt intrinsic 2012-12-25 18:51:18 +00:00
delete-node.ll
div-2.ll
early-ret2.ll Manually remove successors in if conversion when CopyAndPredicateBlock is used 2013-04-10 22:05:25 +00:00
early-ret.ll Generate PPC early conditional returns 2013-04-08 16:24:03 +00:00
empty-functions.ll
emptystruct.ll This patch addresses an ABI compatibility issue with empty aggregate 2012-10-31 01:15:05 +00:00
eqv-andc-orc-nor.ll
extsh.ll
fabs.ll
float-asmprint.ll Simplify writing floating types to assembly. 2013-01-11 10:36:13 +00:00
float-to-int.ll Fix a bad assert in PPCTargetLowering 2013-04-01 18:42:58 +00:00
floatPSA.ll This patch addresses PR13947. 2012-10-11 15:38:20 +00:00
fma.ll FileCheckize a bunch of tests. 2013-04-11 12:32:23 +00:00
fnabs.ll
fneg.ll
fold-li.ll
fold-zero.ll Implement PPCInstrInfo::FoldImmediate 2013-04-06 19:30:30 +00:00
fp_to_uint.ll
fp-branch.ll
fp-int-fp.ll
fpcopy.ll
frame-size.ll Allocate the RS spill slot for any PPC function with spills and a large stack frame 2013-03-15 05:06:04 +00:00
frameaddr.ll Correct PPC FRAMEADDR lowering using a pseudo-register 2013-03-21 19:03:19 +00:00
Frames-alloca.ll
Frames-large.ll
Frames-leaf.ll
Frames-small.ll
frounds.ll
fsel.ll Cleanup and improve PPC fsel generation 2013-04-07 22:11:09 +00:00
fsl-e500mc.ll
fsl-e5500.ll
fsqrt.ll
hello.ll
hidden-vis-2.ll
hidden-vis.ll
i32-to-float.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i64_fp_round.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i64_fp.ll
i64-to-float.ll Add more PPC floating-point conversion instructions 2013-04-01 17:52:07 +00:00
i128-and-beyond.ll
iabs.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
ifcvt.ll Enable early if conversion on PPC 2013-04-05 23:29:01 +00:00
illegal-element-type.ll
in-asm-f64-reg.ll Simplify the testcase a bit. 2012-12-20 17:47:27 +00:00
indirectbr.ll
inlineasm-copy.ll
int-fp-conv-0.ll
int-fp-conv-1.ll In various places throughout the code generator, there were special 2012-10-29 18:35:49 +00:00
inverted-bool-compares.ll
isel.ll
ispositive.ll
itofp128.ll
jaggedstructs.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
LargeAbsoluteAddr.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
lbzux.ll Enable unaligned memory access on PPC for scalar types 2013-03-15 15:27:13 +00:00
lha.ll
lit.local.cfg Include '.test' suffix in target specific lit configs that need it 2013-03-18 20:31:44 +00:00
load-constant-addr.ll
load-shift-combine.ll This patch addresses an incorrect transformation in the DAG combiner. 2013-01-14 22:04:38 +00:00
long-compare.ll
longdbl-truncate.ll
lsa.ll Use virtual base registers on PPC 2013-04-09 17:27:09 +00:00
lsr-postinc-pos.ll
mask64.ll
mcm-1.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-2.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-3.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-4.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-5.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-6.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-7.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-8.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-9.ll Large code model support for PowerPC. 2013-02-21 17:12:27 +00:00
mcm-10.ll PPCDAGToDAGISel::PostprocessISelDAG() 2013-02-21 00:38:25 +00:00
mcm-11.ll PPCDAGToDAGISel::PostprocessISelDAG() 2013-02-21 00:38:25 +00:00
mcm-12.ll PPCDAGToDAGISel::PostprocessISelDAG() 2013-02-21 00:38:25 +00:00
mcm-default.ll This patch makes medium code model the default for 64-bit PowerPC ELF. 2012-11-27 23:36:26 +00:00
mcm-obj-2.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
mcm-obj.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
mem_update.ll This patch is in preparation for adding medium code model support to the 2012-11-14 23:23:27 +00:00
mem-rr-addr-mode.ll
misched-inorder-latency.ll MIsched: add an ILP window property to machine model. 2013-01-09 03:36:49 +00:00
misched.ll Fix assertions in updateRegMaskSlots(). 2012-11-09 19:18:49 +00:00
mul-neg-power-2.ll
mul-with-overflow.ll
mulhs.ll
mult-alt-generic-powerpc64.ll
mult-alt-generic-powerpc.ll
neg.ll
negctr.ll Fix a sign-extension bug in PPCCTRLoops 2013-03-18 23:58:28 +00:00
no-dead-strip.ll
novrsave.ll
or-addressing-mode.ll
popcnt.ll Add the PPC popcntw instruction 2013-04-01 15:58:15 +00:00
ppc64-32bit-addic.ll
ppc64-abi-extend.ll On PowerPC64, integer return values (as well as arguments) are supposed 2012-11-05 19:39:45 +00:00
ppc64-align-long-double.ll This patch adds alignment information for long double to the 64-bit PowerPC 2012-10-29 14:59:36 +00:00
ppc64-calls.ll
ppc64-crash.ll
ppc64-cyclecounter.ll
ppc64-linux-func-size.ll
ppc64-prefetch.ll
ppc64-toc.ll This patch is in preparation for adding medium code model support to the 2012-11-14 23:23:27 +00:00
ppc64-vaarg-int.ll
ppc64-zext.ll
ppc440-fp-basic.ll
ppc440-msync.ll
ppc-prologue.ll
ppc-vaarg-agg.ll
ppcf128-1-opt.ll
ppcf128-1.ll
ppcf128-2.ll
ppcf128-3.ll
ppcf128-4.ll
pr3711_widen_bit.ll
pr12757.ll Allow i32/i64 for 'f' constraint on PowerPC. 2012-10-29 17:49:34 +00:00
pr13641.ll
pr13891.ll
pr15031.ll This patch addresses bug 15031. 2013-01-28 18:36:58 +00:00
pr15359.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
pr15630.ll Fix PR15630: Replace faulty stdcx. with stwcx. 2013-04-02 18:37:08 +00:00
pr15632.ll Fix PR15632: No support for ppcf128 floating-point remainder on PowerPC. 2013-04-03 13:05:44 +00:00
private.ll
pwr3-6x.ll LLVM enablement for some older PowerPC CPUs 2013-02-01 22:59:51 +00:00
quadint-return.ll Restore reverted test case, this time with REQUIRES: asserts 2013-01-17 19:46:51 +00:00
r31.ll Don't reserve R31 on PPC64 unless the frame pointer is needed 2013-03-19 08:09:38 +00:00
recipest.ll PPC: Improve code generation for mixed-precision reciprocal sqrt 2013-04-04 22:44:12 +00:00
reg-coalesce-simple.ll
remat-imm.ll
retaddr.ll
return-val-i128.ll
rlwimi2.ll
rlwimi3.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
rlwimi-commute.ll
rlwimi-keep-rsh.ll
rlwimi.ll
rlwinm2.ll
rlwinm.ll
rotl-2.ll
rotl-64.ll
rotl.ll
rounding-ops.ll Generate PPC early conditional returns 2013-04-08 16:24:03 +00:00
s000-alias-misched.ll Use GetUnderlyingObjects in misched 2012-12-10 18:49:16 +00:00
sdag-ppcf128.ll Support ppcf128 in SelectionDAG::getConstantFP 2012-12-30 19:03:32 +00:00
sections.ll
select_lt0.ll
select-cc.ll
setcc_no_zext.ll
seteq-0.ll
shift128.ll
shl_elim.ll
shl_sext.ll
sign_ext_inreg1.ll
sjlj.ll Don't spill PPC VRSAVE on non-Darwin (even in SjLj) 2013-03-27 00:02:20 +00:00
small-arguments.ll
stack-protector.ll
stdux-constuse.ll DAGCombiner: Constant folding around pre-increment loads/stores 2013-02-08 21:35:47 +00:00
stfiwx-2.ll Add triple to test/CodeGen/PowerPC/stfiwx-2 2013-04-01 18:18:44 +00:00
stfiwx.ll
store-load-fwd.ll
store-update.ll Rewrite pre-increment store patterns to use standard memory operands. 2013-03-19 19:52:04 +00:00
structsinmem.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
structsinregs.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
stubs.ll PPC: MCize most of the darwin PIC emission. 2012-11-24 13:18:25 +00:00
stwu8.ll Enable unaligned memory access on PPC for scalar types 2013-03-15 15:27:13 +00:00
stwu-gta.ll
stwux.ll
subc.ll
svr4-redzone.ll Fix PR15332 (patch by Florian Zeitz). 2013-02-26 21:28:57 +00:00
tailcall1-64.ll
tailcall1.ll
tailcallpic1.ll
tls-2.ll PPCDAGToDAGISel::PostprocessISelDAG() 2013-02-21 00:38:25 +00:00
tls-gd-obj.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
tls-gd.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
tls-ie-obj.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
tls-ie.ll This patch improves the 64-bit PowerPC InitialExec TLS support by providing 2012-12-14 17:02:38 +00:00
tls-ld-2.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
tls-ld-obj.ll Replace coff-/elf-dump with llvm-readobj 2013-04-12 04:06:46 +00:00
tls-ld.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
tls.ll Remove the link register from the GPR classes on PowerPC. 2013-03-27 02:40:14 +00:00
trampoline.ll
unal4-std.ll Cleanup PPC64 unaligned i64 load/store 2013-03-19 15:23:39 +00:00
unaligned.ll Enable unaligned memory access on PPC for scalar types 2013-03-15 15:27:13 +00:00
unsafe-math.ll
vaddsplat.ll Additional fixes for bug 15155. 2013-02-20 20:41:42 +00:00
varargs-struct-float.ll This patch solves a problem with passing varargs parameters under the PPC64 2012-10-29 21:18:16 +00:00
varargs.ll Don't reserve R2 on Darwin/PPC 2013-03-12 15:18:14 +00:00
vcmp-fold.ll
vec_auto_constant.ll
vec_br_cmp.ll
vec_buildvector_loadstore.ll
vec_call.ll
vec_cmp.ll Test case hygiene. 2013-03-09 18:25:40 +00:00
vec_constants.ll Stabilize vec_constants.ll 2013-02-20 22:43:03 +00:00
vec_conv.ll
vec_extload.ll When lowering an inreg sext first shift left, then right arithmetically. 2013-01-12 19:06:44 +00:00
vec_fneg.ll
vec_insert.ll
vec_misaligned.ll
vec_mul.ll test/CodeGen/PowerPC/vec_mul.ll: Add a triple. Thanks, Hal. 2012-11-30 19:15:10 +00:00
vec_perf_shuffle.ll
vec_rounding.ll Add PPC FP rounding instructions fri[mnpz] 2013-03-29 08:57:48 +00:00
vec_select.ll PowerPC: Expand VSELECT nodes. 2012-12-19 15:49:14 +00:00
vec_shift.ll
vec_shuffle.ll
vec_splat_constant.ll
vec_splat.ll
vec_sqrt.ll PowerPC: Expand FSRQT for vector types 2012-10-30 18:29:42 +00:00
vec_vrsave.ll
vec_zero.ll
vector-identity-shuffle.ll
vector.ll
vrsave-spill.ll Don't spill PPC VRSAVE on non-Darwin (even in SjLj) 2013-03-27 00:02:20 +00:00
vrspill.ll Improve PPC VR (Altivec) register spilling 2013-03-17 04:43:44 +00:00