freebsd-dev/contrib/llvm
Dimitry Andric 6ca8079c85 Pull in r265122 from upstream llvm trunk (by James Molloy):
Fix for pr24346: arm asm label calculation error in sub

  Some ARM instructions encode 32-bit immediates as a 8-bit integer
  (0-255) and a 4-bit rotation (0-30, even) in its least significant 12
  bits. The original fixup, FK_Data_4, patches the instruction by the
  value bit-to-bit, regardless of the encoding. For example, assuming
  the label L1 and L2 are 0x0 and 0x104 respectively, the following
  instruction:

    add r0, r0, #(L2 - L1) ; expects 0x104, i.e., 260

  would be assembled to the following, which adds 1 to r0, instead of
  260:

    e2800104 add r0, r0, #4, 2 ; equivalently 1

  The new fixup kind fixup_arm_mod_imm takes care of the encoding:

    e2800f41 add r0, r0, #260

  Patch by Ting-Yuan Huang!

This fixes label calculation for ARM assembly, and is needed to enable
ARM assembly sources for OpenSSL.

Requested by:	jkim
MFC after:	3 days
2016-08-20 14:04:51 +00:00
..
include Pull in r264335 from upstream llvm trunk: 2016-03-24 20:55:23 +00:00
lib Pull in r265122 from upstream llvm trunk (by James Molloy): 2016-08-20 14:04:51 +00:00
patches Undo r289072, which reverted upstream llvm trunk r240144. This is going 2016-01-16 17:57:54 +00:00
projects/libunwind libunwind: correct return code in unwinding trace log message 2016-07-29 21:37:00 +00:00
tools Pull in r262772 from upstream clang trunk (by Simon Pilgrim): 2016-08-17 21:57:11 +00:00
utils/TableGen Update llvm, clang and lldb to trunk r257626, and update build glue. 2016-01-14 17:42:46 +00:00
FREEBSD-Xlist Update FREEBSD-Xlist files for llvm and clang. 2015-05-27 20:58:54 +00:00
LICENSE.TXT Merge llvm trunk r238337 from ^/vendor/llvm/dist, resolve conflicts, and 2015-05-27 20:26:41 +00:00