On Fri, 2022-03-04 at 15:17 +0800, xucheng...@loongson.cn wrote: > v7 -> v8 > 1. Add new addressing type ADDRESS_REG_REG support. > 2. Modify documentation. > 3. Eliminate compile-time warnings.
Hi, The v8 series does not build LoongArch Linux kernel tree (https://github.com/loongson/linux, loongarch-next branch) successfully. This is a regression: the v7 series built the kernel fine. A testcase reduced from the __get_data_asm macro in uaccess.h: $ cat t1.c char *ptr; int offset; struct m { char a[2]; }; char x (void) { char t; asm volatile("ld.b %0, %1" : "=r"(t) : "o"(*(struct m *)(ptr + offset))); return t; } $ ./gcc/cc1 t1.c -nostdinc -O t1.c: In function ‘x’: t1.c:12:3: error: impossible constraint in ‘asm’ 12 | asm volatile("ld.b %0, %1" : "=r"(t) : "o"(*(struct m *)(ptr + offset))); | ^~~ It seems changing the constraint "o" to "m" can work around this issue. I'm not sure if this is a compiler bug or a kernel bug. -- Xi Ruoyao <xry...@mengyan1223.wang> School of Aerospace Science and Technology, Xidian University