diff options
author | dim <dim@FreeBSD.org> | 2016-08-23 05:22:03 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2016-08-23 05:22:03 +0000 |
commit | 592578a29b15e802c446a92c776cc7a576e8c206 (patch) | |
tree | ea617e9446a5c9850d51376da764632143523b82 /lib/clang/freebsd_cc_version.h | |
parent | 0cf4441e5a3fd2282077580f60b2165bd1035488 (diff) | |
download | FreeBSD-src-592578a29b15e802c446a92c776cc7a576e8c206.zip FreeBSD-src-592578a29b15e802c446a92c776cc7a576e8c206.tar.gz |
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
Diffstat (limited to 'lib/clang/freebsd_cc_version.h')
-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 0d0ea11..5ca3a8a 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 |