diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-08-23 05:22:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-08-23 05:22:03 +0000 |
commit | a2d48ce575c2e27aa21b602947f7b4a478643a34 (patch) | |
tree | ea617e9446a5c9850d51376da764632143523b82 /lib/clang | |
parent | 14720199b8b34a7b1ea8b1ba6ef47ed1a32f5580 (diff) | |
download | src-a2d48ce575c2e27aa21b602947f7b4a478643a34.tar.gz src-a2d48ce575c2e27aa21b602947f7b4a478643a34.zip |
MFC r304530:
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
Notes
Notes:
svn path=/stable/11/; revision=304657
Diffstat (limited to 'lib/clang')
-rw-r--r-- | lib/clang/freebsd_cc_version.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/clang/freebsd_cc_version.h b/lib/clang/freebsd_cc_version.h index 0d0ea11d6fd9..5ca3a8adb971 100644 --- a/lib/clang/freebsd_cc_version.h +++ b/lib/clang/freebsd_cc_version.h @@ -1,3 +1,3 @@ /* $FreeBSD$ */ -#define FREEBSD_CC_VERSION 1100501 +#define FREEBSD_CC_VERSION 1100502 |