-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error: operand out of range (260 is not between -256 and 255) #21
Comments
It is for wm8962_readable_register() in sound/soc/codecs/wm8962.c, it is a very simple function but contents 600+ cases (all are empty and only fall through to "return true") within switch statement. After remove most of these empty cases, can pass compiling. |
Oh, sorry, for related operation, I also disable CONFIG_CC_OPTIMIZE_FOR_SIZE for building kernel, and pass -mmedium-calls to arc-elf32-gcc. |
I suspect this is a problem with the compiler generating invalid assembler, rather than a fault in the assembler itself. The ARC assembler does not have relaxation, so cannot resolve these problems for itself. It is up to the compiler to get things right. I'll ask Joern Rennecke (GCC expert) to take a look. |
On 10/31/2013 05:44 PM, Jeremy Bennett wrote:
OK, thank you very much. :-)
Chen Gang |
This might be a bug in GCC in the branch shortening, or it might be an assembler bug, choosing an instruction Could you please provide the pre-processed sources with the exact compilation flags to reproduce the problem? |
I did solve some issues related to branch shortening in dev branch please rerun your example with it and let me know if you see the issue again. |
On 11/01/2013 12:49 AM, amylaar wrote:
OK, I will/should provide, I will try to finish within this week But at least, I should finish within next week (2013-10-10). Thanks.Chen Gang |
On 11/01/2013 01:02 AM, Claudiu Zissulescu wrote:
It sounds reasonable to me. I will try to use the develop tree. THanks.Chen Gang |
On 11/01/2013 09:33 AM, Chen Gang wrote:
For gcc issue #26, arc-gcc-4.8-dev will be OK. So I leave a comment and close it. :-)
Thanks.Chen Gang |
On 11/01/2013 11:58 AM, Chen Gang wrote:
But for this version, it will cause another issue (it can be repeated under my current environments): Operation: make ARCH=arc CROSS_COMPILE=/usr/local/bin/arc-elf32- EXTRA_CFLAGS=-mmedium-calls allmodconfig Error: CC [M] fs/hfs/string.o gcc Information: [root@gchenlinux linux-next]# arc-elf32-gcc -v Thanks.Chen Gang |
On 11/01/2013 12:49 AM, amylaar wrote:
The related .i and .s files are in attachment. The command line and issues are below (use the download gcc-arc-4.8-dev.zip and binutils-arc-2.23-dev.zip): [root@gchenlinux linux-next]# /usr/local/bin/arc-elf32-gcc -Wp,-MD,sound/soc/codecs/.wm8962.o.d -nostdinc -isystem /usr/local/lib/gcc/arc-elf32/4.8.0/include -I/android/public-kernel/linux-next/arch/arc/include -Iarch/arc/include/generated -Iinclude -I/android/public-kernel/linux-next/arch/arc/include/uapi -Iarch/arc/include/generated/uapi -I/android/public-kernel/linux-next/include/uapi -Iinclude/generated/uapi -include /android/public-kernel/linux-next/include/linux/kconfig.h -include /android/public-kernel/linux-next/arch/arc/include/asm/current.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -mA7 -fno-common -pipe -fno-builtin -D__linux__ -fsection-anchors -mlock -mswape -mrtsc -fasynchronous-unwind-tables -gdwarf-2 -O3 -mno-sdata -fcall-used-gp -multcost=16 -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-l If necessary to let me additional try, please let me know Thanks.Chen Gang 1 "sound/soc/codecs/wm8962.c"1 "/android/public-kernel/linux-next//"1 ""1 "/android/public-kernel/linux-next/include/linux/kconfig.h" 11 "include/generated/autoconf.h" 15 "/android/public-kernel/linux-next/include/linux/kconfig.h" 21 "" 21 "/android/public-kernel/linux-next/arch/arc/include/asm/current.h" 121 "/android/public-kernel/linux-next/arch/arc/include/asm/current.h"register struct task_struct *curr_arc asm("r25"); 1 "" 21 "sound/soc/codecs/wm8962.c"14 "sound/soc/codecs/wm8962.c"1 "include/linux/module.h" 19 "include/linux/module.h"1 "include/linux/list.h" 11 "include/linux/types.h" 11 "include/uapi/linux/types.h" 11 "arch/arc/include/generated/asm/types.h" 11 "/android/public-kernel/linux-next/include/uapi/asm-generic/types.h" 11 "include/asm-generic/int-ll64.h" 110 "include/asm-generic/int-ll64.h"1 "include/uapi/asm-generic/int-ll64.h" 111 "include/uapi/asm-generic/int-ll64.h"1 "arch/arc/include/generated/asm/bitsperlong.h" 11 "include/asm-generic/bitsperlong.h" 11 "include/uapi/asm-generic/bitsperlong.h" 15 "include/asm-generic/bitsperlong.h" 21 "arch/arc/include/generated/asm/bitsperlong.h" 212 "include/uapi/asm-generic/int-ll64.h" 2typedef signed char __s8; typedef signed short __s16; typedef signed int __s32; extension typedef signed long long s64; 11 "include/asm-generic/int-ll64.h" 2typedef signed char s8; typedef signed short s16; typedef signed int s32; typedef signed long long s64; 8 "/android/public-kernel/linux-next/include/uapi/asm-generic/types.h" 21 "arch/arc/include/generated/asm/types.h" 25 "include/uapi/linux/types.h" 213 "include/uapi/linux/types.h"1 "/android/public-kernel/linux-next/include/uapi/linux/posix_types.h" 11 "include/linux/stddef.h" 11 "include/uapi/linux/stddef.h" 11 "include/linux/compiler.h" 154 "include/linux/compiler.h"1 "include/linux/compiler-gcc.h" 1103 "include/linux/compiler-gcc.h"1 "include/linux/compiler-gcc4.h" 1104 "include/linux/compiler-gcc.h" 255 "include/linux/compiler.h" 272 "include/linux/compiler.h"struct ftrace_branch_data { 1 "include/uapi/linux/stddef.h" 25 "include/linux/stddef.h" 2enum { 5 "/android/public-kernel/linux-next/include/uapi/linux/posix_types.h" 224 "/android/public-kernel/linux-next/include/uapi/linux/posix_types.h"typedef struct { typedef void (*__kernel_sighandler_t)(int); typedef int __kernel_key_t; 1 "arch/arc/include/generated/asm/posix_types.h" 11 "/android/public-kernel/linux-next/include/uapi/asm-generic/posix_types.h" 11 "arch/arc/include/generated/asm/bitsperlong.h" 15 "/android/public-kernel/linux-next/include/uapi/asm-generic/posix_types.h" 214 "/android/public-kernel/linux-next/include/uapi/asm-generic/posix_types.h"typedef long __kernel_long_t; typedef __kernel_ulong_t __kernel_ino_t; typedef unsigned int __kernel_mode_t; typedef int __kernel_pid_t; typedef int __kernel_ipc_pid_t; typedef unsigned int __kernel_uid_t; typedef __kernel_long_t __kernel_suseconds_t; typedef int __kernel_daddr_t; typedef unsigned int __kernel_uid32_t; typedef __kernel_uid_t __kernel_old_uid_t; typedef unsigned int __kernel_old_dev_t; 67 "/android/public-kernel/linux-next/include/uapi/asm-generic/posix_types.h"typedef unsigned int __kernel_size_t; 78 "/android/public-kernel/linux-next/include/uapi/asm-generic/posix_types.h"typedef struct { typedef __kernel_long_t __kernel_off_t; 1 "arch/arc/include/generated/asm/posix_types.h" 236 "/android/public-kernel/linux-next/include/uapi/linux/posix_types.h" 214 "include/uapi/linux/types.h" 232 "include/uapi/linux/types.h"typedef __u16 __le16; typedef __u16 __sum16; 6 "include/linux/types.h" 2typedef __u32 __kernel_dev_t; typedef __kernel_fd_set fd_set; typedef _Bool bool; typedef __kernel_uid32_t uid_t; typedef unsigned long uintptr_t; 45 "include/linux/types.h"typedef __kernel_loff_t loff_t; 54 "include/linux/types.h"typedef __kernel_size_t size_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_ptrdiff_t ptrdiff_t; typedef __kernel_time_t time_t; typedef __kernel_clock_t clock_t; typedef __kernel_caddr_t caddr_t; typedef unsigned char u_char; typedef unsigned char unchar; typedef __u8 u_int8_t; typedef __u8 uint8_t; typedef __u64 uint64_t; 130 "include/linux/types.h"typedef u64 sector_t; 148 "include/linux/types.h"typedef u32 dma_addr_t; 157 "include/linux/types.h"typedef unsigned gfp_t; typedef u32 phys_addr_t; typedef phys_addr_t resource_size_t; typedef unsigned long irq_hw_number_t; typedef struct { struct list_head { struct hlist_head { struct hlist_node { struct ustat { struct callback_head { 5 "include/linux/list.h" 21 "include/linux/poison.h" 17 "include/linux/list.h" 21 "/android/public-kernel/linux-next/include/uapi/linux/const.h" 18 "include/linux/list.h" 224 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void INIT_LIST_HEAD(struct list_head *list) 47 "include/linux/list.h"extern void __list_add(struct list_head *new, 60 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_add(struct list_head *new, struct list_head *head) 74 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_add_tail(struct list_head *new, struct list_head *head) 86 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void __list_del(struct list_head * prev, struct list_head * next) 111 "include/linux/list.h"extern void __list_del_entry(struct list_head *entry); 122 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_replace(struct list_head *old, static inline attribute((always_inline)) attribute((no_instrument_function)) void list_replace_init(struct list_head *old, static inline attribute((always_inline)) attribute((no_instrument_function)) void list_del_init(struct list_head *entry) static inline attribute((always_inline)) attribute((no_instrument_function)) void list_move(struct list_head *list, struct list_head *head) static inline attribute((always_inline)) attribute((no_instrument_function)) void list_move_tail(struct list_head *list, static inline attribute((always_inline)) attribute((no_instrument_function)) int list_is_last(const struct list_head *list, static inline attribute((always_inline)) attribute((no_instrument_function)) int list_empty(const struct list_head *head) 204 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) int list_empty_careful(const struct list_head *head) static inline attribute((always_inline)) attribute((no_instrument_function)) void list_rotate_left(struct list_head *head) if (!list_empty(head)) { static inline attribute((always_inline)) attribute((no_instrument_function)) int list_is_singular(const struct list_head *head) static inline attribute((always_inline)) attribute((no_instrument_function)) void __list_cut_position(struct list_head *list, 259 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_cut_position(struct list_head *list, static inline attribute((always_inline)) attribute((no_instrument_function)) void __list_splice(const struct list_head *list, first->prev = prev; last->next = next; static inline attribute((always_inline)) attribute((no_instrument_function)) void list_splice(const struct list_head *list, static inline attribute((always_inline)) attribute((no_instrument_function)) void list_splice_tail(struct list_head *list, 318 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_splice_init(struct list_head *list, 335 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void list_splice_tail_init(struct list_head *list, 570 "include/linux/list.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void INIT_HLIST_NODE(struct hlist_node *h) static inline attribute((always_inline)) attribute((no_instrument_function)) int hlist_unhashed(const struct hlist_node *h) static inline attribute((always_inline)) attribute((no_instrument_function)) int hlist_empty(const struct hlist_head *h) static inline attribute((always_inline)) attribute((no_instrument_function)) void __hlist_del(struct hlist_node _n) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_del(struct hlist_node *n) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_del_init(struct hlist_node *n) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_add_before(struct hlist_node *n, static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_add_after(struct hlist_node *n, if(next->next) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_add_fake(struct hlist_node *n) static inline attribute((always_inline)) attribute((no_instrument_function)) void hlist_move_list(struct hlist_head *old, 10 "include/linux/module.h" 21 "include/linux/stat.h" 11 "arch/arc/include/generated/asm/stat.h" 11 "/android/public-kernel/linux-next/include/uapi/asm-generic/stat.h" 119 "/android/public-kernel/linux-next/include/uapi/asm-generic/stat.h"1 "arch/arc/include/generated/asm/bitsperlong.h" 120 "/android/public-kernel/linux-next/include/uapi/asm-generic/stat.h" 2struct stat { struct stat64 { 1 "arch/arc/include/generated/asm/stat.h" 26 "include/linux/stat.h" 21 "include/uapi/linux/stat.h" 17 "include/linux/stat.h" 218 "include/linux/stat.h"1 "include/linux/time.h" 11 "include/linux/cache.h" 11 "include/linux/kernel.h" 11 "/usr/local/lib/gcc/arc-elf32/4.8.0/include/stdarg.h" 1 3 440 "/usr/local/lib/gcc/arc-elf32/4.8.0/include/stdarg.h" 3 4typedef __builtin_va_list __gnuc_va_list; 98 "/usr/local/lib/gcc/arc-elf32/4.8.0/include/stdarg.h" 3 4typedef __gnuc_va_list va_list; 6 "include/linux/kernel.h" 21 "include/linux/linkage.h" 11 "include/linux/stringify.h" 16 "include/linux/linkage.h" 21 "include/linux/export.h" 126 "include/linux/export.h"struct kernel_symbol extern struct module __this_module; 7 "include/linux/linkage.h" 21 "/android/public-kernel/linux-next/arch/arc/include/asm/linkage.h" 18 "include/linux/linkage.h" 27 "include/linux/kernel.h" 21 "include/linux/bitops.h" 11 "arch/arc/include/generated/asm/types.h" 14 "include/linux/bitops.h" 213 "include/linux/bitops.h"extern unsigned int __sw_hweight8(unsigned int w); 1 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 130 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void set_bit(unsigned long nr, volatile unsigned long *m) m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( static inline attribute((always_inline)) attribute((no_instrument_function)) void clear_bit(unsigned long nr, volatile unsigned long *m) m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( static inline attribute((always_inline)) attribute((no_instrument_function)) void change_bit(unsigned long nr, volatile unsigned long *m) m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( 98 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) int test_and_set_bit(unsigned long nr, volatile unsigned long *m) m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( return (old & (1 << nr)) != 0; static inline attribute((always_inline)) attribute((no_instrument_function)) int m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( return (old & (1 << nr)) != 0; static inline attribute((always_inline)) attribute((no_instrument_function)) int m += nr >> 5; if (__builtin_constant_p(nr)) asm volatile( return (old & (1 << nr)) != 0; 293 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void __set_bit(unsigned long nr, volatile unsigned long *m) if (__builtin_constant_p(nr)) temp = *m; static inline attribute((always_inline)) attribute((no_instrument_function)) void __clear_bit(unsigned long nr, volatile unsigned long *m) if (__builtin_constant_p(nr)) temp = *m; static inline attribute((always_inline)) attribute((no_instrument_function)) void __change_bit(unsigned long nr, volatile unsigned long *m) if (__builtin_constant_p(nr)) temp = *m; static inline attribute((always_inline)) attribute((no_instrument_function)) int if (__builtin_constant_p(nr)) old = *m; return (old & (1 << nr)) != 0; static inline attribute((always_inline)) attribute((no_instrument_function)) int if (__builtin_constant_p(nr)) old = *m; return (old & (1 << nr)) != 0; static inline attribute((always_inline)) attribute((no_instrument_function)) int if (__builtin_constant_p(nr)) old = *m; return (old & (1 << nr)) != 0; static inline attribute((always_inline)) attribute((no_instrument_function)) int static inline attribute((always_inline)) attribute((no_instrument_function)) int addr += nr >> 5; mask = 1 << nr; return ((mask & *addr) != 0); 408 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute ((const)) int clz(unsigned int x) asm volatile( return res; static inline attribute((always_inline)) attribute((no_instrument_function)) int constant_fls(int x) if (!x) static inline attribute((always_inline)) attribute((no_instrument_function)) attribute ((const)) int fls(unsigned long x) return 32 - clz(x); static inline attribute((always_inline)) attribute((no_instrument_function)) attribute ((const)) int __fls(unsigned long x) 485 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute ((const)) int __ffs(unsigned long word) return ({ unsigned long __t = (word); fls(__t & -__t); }) - 1; 503 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h"1 "include/asm-generic/bitops/hweight.h" 11 "include/asm-generic/bitops/arch_hweight.h" 11 "arch/arc/include/generated/asm/types.h" 15 "include/asm-generic/bitops/arch_hweight.h" 2static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned int __arch_hweight32(unsigned int w) static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned int __arch_hweight16(unsigned int w) static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned int __arch_hweight8(unsigned int w) static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long __arch_hweight64(__u64 w) 5 "include/asm-generic/bitops/hweight.h" 21 "include/asm-generic/bitops/const_hweight.h" 16 "include/asm-generic/bitops/hweight.h" 2504 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/fls64.h" 11 "arch/arc/include/generated/asm/types.h" 15 "include/asm-generic/bitops/fls64.h" 218 "include/asm-generic/bitops/fls64.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((always_inline)) int fls64(__u64 x) 505 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/sched.h" 11 "arch/arc/include/generated/asm/types.h" 16 "include/asm-generic/bitops/sched.h" 2static inline attribute((always_inline)) attribute((no_instrument_function)) int sched_find_first_bit(const unsigned long *b) if (b[0]) } 506 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/lock.h" 1507 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/find.h" 111 "include/asm-generic/bitops/find.h"extern unsigned long find_next_bit(const unsigned long *addr, unsigned long 22 "include/asm-generic/bitops/find.h"extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned 35 "include/asm-generic/bitops/find.h"extern unsigned long find_first_bit(const unsigned long *addr, 45 "include/asm-generic/bitops/find.h"extern unsigned long find_first_zero_bit(const unsigned long *addr, 509 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/le.h" 11 "arch/arc/include/generated/asm/types.h" 15 "include/asm-generic/bitops/le.h" 21 "/android/public-kernel/linux-next/arch/arc/include/uapi/asm/byteorder.h" 115 "/android/public-kernel/linux-next/arch/arc/include/uapi/asm/byteorder.h"1 "include/linux/byteorder/little_endian.h" 11 "include/uapi/linux/byteorder/little_endian.h" 112 "include/uapi/linux/byteorder/little_endian.h"1 "include/linux/swab.h" 11 "include/uapi/linux/swab.h" 11 "/android/public-kernel/linux-next/arch/arc/include/uapi/asm/swab.h" 17 "include/uapi/linux/swab.h" 246 "include/uapi/linux/swab.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) __u16 __fswab16(__u16 val) return ((__u16)( (((__u16)(val) & (__u16)0x00ffU) << 8) | (((__u16)(val) & (__u16)0xff00U) >> 8))); } static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) __u32 __fswab32(__u32 val) return ({ unsigned int tmp = val; asm( " swape %0, %1 \n" : "=r" (tmp) : "r" (tmp)); tmp; }); } static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) __u64 __fswab64(__u64 val) __u32 h = val >> 32; } static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) __u32 __fswahw32(__u32 val) return ((__u32)( (((__u32)(val) & (__u32)0x0000ffffUL) << 16) | (((__u32)(val) & (__u32)0xffff0000UL) >> 16))); } static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) __u32 __fswahb32(__u32 val) return ((__u32)( (((__u32)(val) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(val) & (__u32)0xff00ff00UL) >> 8))); } 154 "include/uapi/linux/swab.h"static inline attribute((always_inline)) attribute((no_instrument_function)) __u16 __swab16p(const __u16 *p) return (__builtin_constant_p((__u16)(_p)) ? ((__u16)( (((__u16)(_p) & (__u16)0x00ffU) << 8) | (((__u16)(_p) & (__u16)0xff00U) >> 8))) : __fswab16(_p)); } static inline attribute((always_inline)) attribute((no_instrument_function)) __u32 __swab32p(const __u32 *p) return (__builtin_constant_p((__u32)(_p)) ? ((__u32)( (((__u32)(_p) & (__u32)0x000000ffUL) << 24) | (((__u32)(_p) & (__u32)0x0000ff00UL) << 8) | (((__u32)(_p) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(_p) & (__u32)0xff000000UL) >> 24))) : __fswab32(_p)); } static inline attribute((always_inline)) attribute((no_instrument_function)) __u64 __swab64p(const __u64 *p) return (__builtin_constant_p((__u64)(_p)) ? ((__u64)( (((__u64)(_p) & (__u64)0x00000000000000ffULL) << 56) | (((__u64)(_p) & (__u64)0x000000000000ff00ULL) << 40) | (((__u64)(_p) & (__u64)0x0000000000ff0000ULL) << 24) | (((__u64)(_p) & (__u64)0x00000000ff000000ULL) << 8) | (((__u64)(_p) & (__u64)0x000000ff00000000ULL) >> 8) | (((__u64)(_p) & (__u64)0x0000ff0000000000ULL) >> 24) | (((__u64)(_p) & (__u64)0x00ff000000000000ULL) >> 40) | (((__u64)(_p) & (__u64)0xff00000000000000ULL) >> 56))) : __fswab64(_p)); } static inline attribute((always_inline)) attribute((no_instrument_function)) __u32 __swahw32p(const __u32 *p) return (__builtin_constant_p((__u32)(_p)) ? ((__u32)( (((__u32)(_p) & (__u32)0x0000ffffUL) << 16) | (((__u32)(_p) & (__u32)0xffff0000UL) >> 16))) : __fswahw32(_p)); } static inline attribute((always_inline)) attribute((no_instrument_function)) __u32 __swahb32p(const __u32 *p) return (__builtin_constant_p((__u32)(_p)) ? ((__u32)( (((__u32)(_p) & (__u32)0x00ff00ffUL) << 8) | (((__u32)(_p) & (__u32)0xff00ff00UL) >> 8))) : __fswahb32(_p)); } static inline attribute((always_inline)) attribute((no_instrument_function)) void __swab16s(__u16 *p) *p = __swab16p(p); } static inline attribute((always_inline)) attribute((no_instrument_function)) void __swab32s(__u32 *p) *p = __swab32p(p); } static inline attribute((always_inline)) attribute((no_instrument_function)) void __swab64s(__u64 *p) *p = __swab64p(p); } static inline attribute((always_inline)) attribute((no_instrument_function)) void __swahw32s(__u32 *p) *p = __swahw32p(p); } static inline attribute((always_inline)) attribute((no_instrument_function)) void __swahb32s(__u32 *p) *p = __swahb32p(p); } 5 "include/linux/swab.h" 213 "include/uapi/linux/byteorder/little_endian.h" 243 "include/uapi/linux/byteorder/little_endian.h"static inline attribute((always_inline)) attribute((no_instrument_function)) le64 __cpu_to_le64p(const __u64 _p) 5 "include/linux/byteorder/little_endian.h" 21 "include/linux/byteorder/generic.h" 1143 "include/linux/byteorder/generic.h"static inline attribute((always_inline)) attribute((no_instrument_function)) void le16_add_cpu(__le16 _var, u16 val) static inline attribute((always_inline)) attribute((no_instrument_function)) void le32_add_cpu(__le32 _var, u32 val) static inline attribute((always_inline)) attribute((no_instrument_function)) void le64_add_cpu(__le64 _var, u64 val) static inline attribute((always_inline)) attribute((no_instrument_function)) void be16_add_cpu(__be16 _var, u16 val) static inline attribute((always_inline)) attribute((no_instrument_function)) void be32_add_cpu(__be32 _var, u32 val) static inline attribute((always_inline)) attribute((no_instrument_function)) void be64_add_cpu(__be64 _var, u64 val) 7 "include/linux/byteorder/little_endian.h" 216 "/android/public-kernel/linux-next/arch/arc/include/uapi/asm/byteorder.h" 26 "include/asm-generic/bitops/le.h" 2static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long find_next_zero_bit_le(const void *addr, static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long find_next_bit_le(const void *addr, static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long find_first_zero_bit_le(const void *addr, 52 "include/asm-generic/bitops/le.h"static inline attribute((always_inline)) attribute((no_instrument_function)) int test_bit_le(int nr, const void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) void set_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) void clear_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) void __set_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) void __clear_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) int test_and_set_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) int test_and_clear_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) int __test_and_set_bit_le(int nr, void *addr) static inline attribute((always_inline)) attribute((no_instrument_function)) int __test_and_clear_bit_le(int nr, void *addr) 510 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 21 "include/asm-generic/bitops/ext2-atomic-setbit.h" 1511 "/android/public-kernel/linux-next/arch/arc/include/asm/bitops.h" 223 "include/linux/bitops.h" 246 "include/linux/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) int get_bitmask_order(unsigned int count) order = fls(count); static inline attribute((always_inline)) attribute((no_instrument_function)) int get_count_order(unsigned int count) order = fls(count) - 1; static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long hweight_long(unsigned long w) static inline attribute((always_inline)) attribute((no_instrument_function)) __u64 rol64(__u64 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u64 ror64(__u64 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u32 rol32(__u32 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u32 ror32(__u32 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u16 rol16(__u16 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u16 ror16(__u16 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u8 rol8(__u8 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __u8 ror8(__u8 word, unsigned int shift) static inline attribute((always_inline)) attribute((no_instrument_function)) __s32 sign_extend32(__u32 value, int index) static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned fls_long(unsigned long l) 175 "include/linux/bitops.h"static inline attribute((always_inline)) attribute((no_instrument_function)) unsigned long __ffs64(u64 word) if (((u32)word) == 0UL) return __ffs((unsigned long)word); 196 "include/linux/bitops.h"extern unsigned long find_last_bit(const unsigned long *addr, 11 "include/linux/kernel.h" 21 "include/linux/log2.h" 121 "include/linux/log2.h"extern attribute((const, noreturn)) 31 "include/linux/log2.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((const)) 12 "include/linux/kernel.h" 21 "include/linux/typecheck.h" 113 "include/linux/kernel.h" 21 "include/linux/printk.h" 11 "include/linux/init.h" 1135 "include/linux/init.h"typedef int (_initcall_t)(void); extern initcall_t __con_initcall_start[], __con_initcall_end[]; typedef void (*ctor_fn_t)(void); extern int do_one_initcall(initcall_t fn); void setup_arch(char **); extern void (*late_time_init)(void); extern bool initcall_debug; 6 "include/linux/printk.h" 21 "include/linux/kern_levels.h" 17 "include/linux/printk.h" 2extern const char linux_banner[]; static inline attribute((always_inline)) attribute((no_instrument_function)) int printk_get_level(const char *buffer) static inline attribute((always_inline)) attribute((no_instrument_function)) const char *printk_skip_level(const char *buffer) extern int console_printk[]; static inline attribute((always_inline)) attribute((no_instrument_function)) void console_silent(void) static inline attribute((always_inline)) attribute((no_instrument_function)) void console_verbose(void) struct va_format { 94 "include/linux/printk.h"static inline attribute((always_inline)) attribute((no_instrument_function)) attribute((format(printf, 1, 2))) extern attribute((format(printf, 1, 2))) attribute((format(printf, 5, 0))) attribute((format(printf, 1, 0))) attribute((format(printf, 5, 6))) attribute((cold)) attribute((format(printf, 1, 2))) attribute((cold)) attribute((format(printf, 1, 2))) attribute((cold)) int printk_sched(const char *fmt, ...); extern int __printk_ratelimit(const char *func); extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, extern int printk_delay_msec; extern void wake_up_klogd(void); void log_buf_kexec_setup(void); 203 "include/linux/printk.h"extern void dump_stack(void) attribute((cold)); 354 "include/linux/printk.h"extern const struct file_operations kmsg_fops; enum { extern void print_hex_dump(const char *level, const char *prefix_str, 14 "include/linux/kernel.h" 21 "include/linux/dynamic_debug.h" 19 "include/linux/dynamic_debug.h"struct _ddebug { const char *modname; 35 "include/linux/dynamic_debug.h"unsigned int flags:8; int ddebug_add_module(struct _ddebug *tab, unsigned int n, extern int ddebug_remove_module(const char *mod_name); extern int ddebug_dyndbg_module_param_cb(char *param, char *val, struct device; extern attribute((format(printf, 3, 4))) struct net_device; extern attribute((format(printf, 3, 4))) 15 "include/linux/kernel.h" 21 "include/uapi/linux/kernel.h" 11 "/android/public-kernel/linux-next/include/uapi/linux/sysinfo.h" 1struct sysinfo { 5 "include/uapi/linux/kernel.h" 217 "include/linux/kernel.h" 2111 "include/linux/kernel.h"1 "arch/arc/include/generated/asm/div64.h" 11 "include/asm-generic/div64.h" 135 "include/asm-generic/div64.h"extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); 1 "arch/arc/include/generated/asm/div64.h" 2112 "include/linux/kernel.h" 2140 "include/linux/kernel.h"struct completion; 152 "include/linux/kernel.h"void __might_sleep(c |
Hi Chen-Gang This is another GCC issue. I'll ask Joern to take a look. |
On 11/04/2013 10:13 PM, Jeremy Bennett wrote:
OK, thank you very much, and I will/should also try (my time resource I am not quite familiar with compiler development, but at least, for the Hope we can find all root cause for all our related issues within this Thanks.Chen Gang |
Hi Chen Gang, Your .i and .s files appear to be inline rather than an attachment. Could you host them somewhere (e.g. dropbox) and post a link. Thanks, Jeremy |
On 11/05/2013 04:20 PM, Jeremy Bennett wrote:
Excuse me, I have no related site for uploading it (can not provide a So I put it in attachment, hope you can get it (if we have another more Thanks.Chen Gang |
Hi Chen Gang, This is a consequence of how GitHub treats email responses. It has no concept of attachments, so inlines anything you attach in email. Which for a large attachment is immensely inconvenient. So you need to put the files somewhere and then post a link to that. Lots of suggestions on how to do this here: http://stackoverflow.com/questions/10963205/how-to-attach-file-to-a-github-issue HTH, Jeremy |
On 11/05/2013 04:49 PM, Jeremy Bennett wrote:
link: http://yun.baidu.com/share/link?shareid=3796982915&uk=507417837 This is a web site, and right click each files (wm8962.?.txt) and choose Excuse me, it is a Chinese web site, it may display with Chinese, not Welcome any suggestions or completions. Thanks.Chen Gang |
Hi Chen Gang I have managed to retrieve the files and passed on to Joern. I used Google Translate, which helped identify the buttons to use. Jeremy |
On 11/01/2013 12:43 PM, Chen Gang wrote:
For me, in DF_LIVE_IN(), need care about NULL when DF_LIVE_BB_INFO(BB) 613 #define DF_LIVE_BB_INFO(BB) (df_live_get_bb_info((BB)->index)) 619 #define DF_LIVE_IN(BB) (&DF_LIVE_BB_INFO(BB)->in) 1064 static inline struct df_live_bb_info * 1103 static inline bitmap
Thanks.Chen Gang |
On 11/10/2013 05:37 PM, Chen Gang wrote:
After a check, it is not because of this reason (although theoretically the related insn point to another object (not a valid insn).
The related command is: "./cc1 /tmp/string.i -O2 -fno-reorder-blocks". If necessary, I will send new issue for it (also upload string.i). Thanks.
Chen Gang |
On 11/10/2013 08:48 PM, Chen Gang wrote:
In arc_hazard() gcc/config/arc/arc.c, if 'lab' is 'simple_return_rtx', ---------------------------diff begin----------------------------------- --- gcc/config/arc/arc.c 2013-11-11 13:01:38.032630106 +0800
---------------------------diff end------------------------------------- Please help check, thanks.
Chen Gang |
Hi Chen-Gang, Just to let you know that this is on amylaar's list to look at. He is currently investigating a related issue, and will get to this issue in a few days. Jeremy |
On 11/12/2013 04:28 PM, Jeremy Bennett wrote:
OK, thanks, just take a look when you have time. This is my first time Thanks.Chen Gang |
I see we got a odd interaction between if-conversion, conditional return, for mov.ne rq,0 , we can use sub_s.ne rq,rq,rq , but that is not |
I'm currently testing this patch: +static unsigned arc_predicate_delay_insns (void);
static struct register_pass_info arc_ifcvt5_info
if (optimize > 1 && !TARGET_NO_COND_EXEC)
/* Check ARC options, generate derived target attributes. */ +/* Find annulled delay insns and convert them to use the appropriate predicate.
+static unsigned
/* For ARC600: If a write to a core reg >=32 appears in a delay slot |
Binutils implementation has been completely revamped and submitted upstream as of 2016.03 release. These types of issues should be fixed with latest tools. Please re-open a new issue if you find a new instance of such a problem. Thanks. |
For Public Linux kernel next-20130927 tree, it will cause linking issue.
The related operation:
make ARCH=arc CROSS_COMPILE=/usr/local/bin/arc-elf32- allmodconfig
make ARCH=arc CROSS_COMPILE=/usr/local/bin/arc-elf32-
The related error:
CC [M] sound/soc/codecs/wm8962.o
{standard input}: Assembler messages:
{standard input}:243: Error: operand out of range (260 is not between -256 and 255)
The related information:
[root@gchenlinux linux-next]# arc-elf32-as -v
GNU assembler version 2.23.2 (arc-elf32) using BFD version (GNU Binutils) 2.23.2
[root@gchenlinux linux-next]# arc-elf32-ld -v
GNU ld (GNU Binutils) 2.23.2
[root@gchenlinux linux-next]# arc-elf32-gcc -v
Using built-in specs.
COLLECT_GCC=arc-elf32-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/arc-elf32/4.8.0/lto-wrapper
Target: arc-elf32
Configured with: ../gcc/configure --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 : (reconfigured) ../gcc/configure --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 : (reconfigured) ../gcc/configure --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no target_configargs=enable_vtable_verify=yes --target=arc-elf32 --with-cpu=arc700 --disable-multilib --with-headers=../newlib/newlib/libc/include
Thread model: single
gcc version 4.8.0 (GCC)
The text was updated successfully, but these errors were encountered: