llvm-6502/test/MC/PowerPC
Kit Barton bd9a548881 Add Hardware Transactional Memory (HTM) Support
This patch adds Hardware Transaction Memory (HTM) support supported by ISA 2.07
(POWER8). The intrinsic support is based on GCC one [1], but currently only the
'PowerPC HTM Low Level Built-in Function' are implemented.

The HTM instructions follows the RC ones and the transaction initiation result
is set on RC0 (with exception of tcheck). Currently approach is to create a
register copy from CR0 to GPR and comapring. Although this is suboptimal, since
the branch could be taken directly by comparing the CR0 value, it generates code
correctly on both test and branch and just return value. A possible future
optimization could be elimitate the MFCR instruction to branch directly.

The HTM usage requires a recently newer kernel with PPC HTM enabled. Tested on
powerpc64 and powerpc64le.

This is send along a clang patch to enabled the builtins and option switch.

[1] https://gcc.gnu.org/onlinedocs/gcc/PowerPC-Hardware-Transactional-Memory-Built-in-Functions.html

Phabricator Review: http://reviews.llvm.org/D8247


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233204 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-25 19:36:23 +00:00
..
deprecated-p7.s
htm.s Add Hardware Transactional Memory (HTM) Support 2015-03-25 19:36:23 +00:00
lcomm.s Object: BSS/virtual sections don't have contents 2014-09-26 22:32:16 +00:00
lit.local.cfg
ppc32-ba.s Allow large immediates for branch instructions in 32bit mode. 2014-08-08 20:57:58 +00:00
ppc64-abiversion.s
ppc64-encoding-4xx.s Use the full form of dccci and iccci from the early PPC 405 documents, 2014-08-09 13:58:31 +00:00
ppc64-encoding-6xx.s Add PPC 603's tlbld and tlbli instructions. 2014-08-04 23:49:45 +00:00
ppc64-encoding-bookII.s Add support for part-word atomics for PPC 2015-03-10 20:51:07 +00:00
ppc64-encoding-bookIII.s
ppc64-encoding-e500.s
ppc64-encoding-ext.s [PowerPC] Add asm support for cache-inhibited ld/st instructions 2014-11-30 10:15:56 +00:00
ppc64-encoding-fp.s [PowerPC] Add assembler support for mcrfs and friends 2015-01-15 01:00:53 +00:00
ppc64-encoding-spe.s Add support for SPE load/store from memory. 2014-08-08 16:43:49 +00:00
ppc64-encoding-vmx.s Add LLVM support for PPC cryptography builtins 2015-03-04 20:44:33 +00:00
ppc64-encoding.s [PowerPC] Support the (old) cntlz instruction alias 2015-02-10 18:45:02 +00:00
ppc64-errors.s
ppc64-fixup-apply.s @l and friends adjust their value depending the context used in. 2014-08-10 12:41:50 +00:00
ppc64-fixup-explicit.s
ppc64-fixups.s @l and friends adjust their value depending the context used in. 2014-08-10 12:41:50 +00:00
ppc64-initial-cfa.s
ppc64-localentry-error1.s
ppc64-localentry-error2.s
ppc64-localentry.s [PowerPC] Fix PR 21652 - copy st_other bits on symbol assignment 2014-11-24 18:09:47 +00:00
ppc64-operands.s
ppc64-regs.s
ppc64-relocs-01.s
ppc64-tls-relocs-01.s
ppc-llong.s
ppc-machine.s
ppc-nop.s
ppc-reloc.s Add parsing of 'foo@local". 2014-12-17 06:23:35 +00:00
ppc-word.s
qpx.s [PowerPC] Add support for the QPX vector instruction set 2015-02-25 01:06:45 +00:00
tls-gd-obj.s
tls-ie-obj.s
tls-ld-obj.s
vsx.s This patch adds the VSX logical instructions introduced in the Power ISA 2.07. It also removes the added complexity that favors VMX versions of the three instructions. 2015-02-18 16:21:46 +00:00