* [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-21 20:24 kernel test robot
2021-04-21 23:26 ` Maciej W. Rozycki
0 siblings, 1 reply; 5+ messages in thread
From: kernel test robot @ 2021-04-21 20:24 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 16765 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git mips-next
head: 182dd5bad52c66a54c300fe320b772456572bf23
commit: c49f71f60754acbff37505e1d16ca796bf8a8140 [98/101] MIPS: Reinstate platform `__div64_32' handler
config: mips-malta_qemu_32r6_defconfig (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=c49f71f60754acbff37505e1d16ca796bf8a8140
git remote add mips-linux https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
git fetch --no-tags mips-linux mips-next
git checkout c49f71f60754acbff37505e1d16ca796bf8a8140
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_alloc_btree.c:6:
fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
291 | return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
fs/xfs/libxfs/xfs_bmap.c: In function 'xfs_bmap_del_extent_real':
fs/xfs/libxfs/xfs_bmap.c:5157:18: warning: variable 'bno' set but not used [-Wunused-but-set-variable]
5157 | xfs_fsblock_t bno;
| ^~~
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_bmap.c:6:
fs/xfs/libxfs/xfs_bmap.c: In function 'xfs_bmap_worst_indlen.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/libxfs/xfs_bmap.c:177:3: note: in expansion of macro 'do_div'
177 | do_div(len, maxrecs);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_bmap_btree.c:6:
fs/xfs/libxfs/xfs_bmap_btree.c: In function 'xfs_bmbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
283 | do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_btree.c:6:
fs/xfs/libxfs/xfs_btree.c: In function 'xfs_btree_buf_to_ptr.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
283 | do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
291 | return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_ialloc.c:6:
fs/xfs/libxfs/xfs_ialloc.c: In function 'xfs_ialloc_setup_geometry':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/libxfs/xfs_ialloc.c:2854:3: note: in expansion of macro 'do_div'
2854 | do_div(icount, igeo->ialloc_blks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_ialloc_btree.c:6:
fs/xfs/libxfs/xfs_ialloc_btree.c: In function '__xfs_inobt_free_block.isra.0':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
283 | do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_inode_buf.c:6:
fs/xfs/libxfs/xfs_inode_buf.c: In function 'xfs_inode_buf_verify':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
283 | do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_log_rlimit.c:6:
fs/xfs/libxfs/xfs_log_rlimit.c: In function 'xfs_log_calc_minimum_size':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_linux.h:186:2: note: in expansion of macro 'do_div'
186 | do_div(x, y);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_rmap_btree.c:6:
fs/xfs/libxfs/xfs_rmap_btree.c: In function 'xfs_rmapbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:291:25: note: in expansion of macro 'do_div'
291 | return (xfs_agblock_t) do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_refcount_btree.c:6:
fs/xfs/libxfs/xfs_refcount_btree.c: In function 'xfs_refcountbt_free_block':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_mount.h:283:2: note: in expansion of macro 'do_div'
283 | do_div(ld, mp->m_sb.sb_agblocks);
| ^~~~~~
--
In file included from include/linux/math.h:5,
from include/linux/kernel.h:13,
from include/asm-generic/bug.h:20,
from arch/mips/include/asm/bug.h:42,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from fs/xfs/kmem.h:9,
from fs/xfs/xfs_linux.h:24,
from fs/xfs/xfs.h:22,
from fs/xfs/libxfs/xfs_sb.c:6:
fs/xfs/libxfs/xfs_sb.c: In function 'xfs_validate_sb_common':
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
include/linux/math64.h:91:15: note: in expansion of macro 'do_div'
91 | *remainder = do_div(dividend, divisor);
| ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
fs/xfs/xfs_linux.h:193:2: note: in expansion of macro 'do_div'
193 | do_div(x, y);
| ^~~~~~
>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
74 | __asm__("divu $0, %z1, %z2" \
| ^~~~~~~
include/asm-generic/div64.h:245:11: note: in expansion of macro '__div64_32'
245 | __rem = __div64_32(&(n), __base); \
| ^~~~~~~~~~
include/linux/math64.h:91:15: note: in expansion of macro 'do_div'
91 | *remainder = do_div(dividend, divisor);
| ^~~~~~
..
vim +/asm +74 arch/mips/include/asm/div64.h
58
59 #define __div64_32(n, base) ({ \
60 unsigned long __upper, __low, __high, __radix; \
61 unsigned long long __modquot; \
62 unsigned long long __quot; \
63 unsigned long long __div; \
64 unsigned long __mod; \
65 \
66 __div = (*n); \
67 __radix = (base); \
68 \
69 __high = __div >> 32; \
70 __low = __div; \
71 __upper = __high; \
72 \
73 if (__high) { \
> 74 __asm__("divu $0, %z1, %z2" \
75 : "=x" (__modquot) \
76 : "Jr" (__high), "Jr" (__radix)); \
77 __upper = __modquot >> 32; \
78 __high = __modquot; \
79 } \
80 \
81 __mod = do_div64_32(__low, __upper, __low, __radix); \
82 \
83 __quot = __high; \
84 __quot = __quot << 32 | __low; \
85 (*n) = __quot; \
86 __mod; \
87 })
88
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 16991 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
2021-04-21 20:24 [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm' kernel test robot
@ 2021-04-21 23:26 ` Maciej W. Rozycki
0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2021-04-21 23:26 UTC (permalink / raw)
To: Huang, Ying, Thomas Bogendoerfer, kernel test robot
Cc: kbuild-all, linux-mips
On Thu, 22 Apr 2021, kernel test robot wrote:
> fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
> >> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
> 74 | __asm__("divu $0, %z1, %z2" \
> | ^~~~~~~
Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
I think this asm can go and GCC will do equally well with plain C code.
Or actually marginally better, as preliminary benchmarking shows, owing to
a slightly better instruction scheduling. Code produced for test_div64 is
also slightly smaller for some reason. That's at least for the ISAs up to
R5, which do have DIVU. Well, I can't complain.
For R6 compiled code will work, but separate DIVU and MODU instructions
will be produced, which are also interlocked, so scalar implementations
will likely not perform as well as older ISAs with their asynchronous MD
unit. Likely still faster then the generic algorithm though.
Thomas: I'll collect new figures and respin the series. Please do drop
the original series then; I think there's no point to fix it up and we'll
be better by starting afresh.
Ying: I take it you'll know what to do to get the bot updated. As it
happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
list address, which has been long deprecated and then stopped working
altogether mid Jan this year. I have updated the cc appropriately with
this reply, but would you please amend whatever the bot requires for
further notices to be sent to <linux-mips@vger.kernel.org> instead?
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-21 23:26 ` Maciej W. Rozycki
0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2021-04-21 23:26 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]
On Thu, 22 Apr 2021, kernel test robot wrote:
> fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
> >> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
> 74 | __asm__("divu $0, %z1, %z2" \
> | ^~~~~~~
Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
I think this asm can go and GCC will do equally well with plain C code.
Or actually marginally better, as preliminary benchmarking shows, owing to
a slightly better instruction scheduling. Code produced for test_div64 is
also slightly smaller for some reason. That's at least for the ISAs up to
R5, which do have DIVU. Well, I can't complain.
For R6 compiled code will work, but separate DIVU and MODU instructions
will be produced, which are also interlocked, so scalar implementations
will likely not perform as well as older ISAs with their asynchronous MD
unit. Likely still faster then the generic algorithm though.
Thomas: I'll collect new figures and respin the series. Please do drop
the original series then; I think there's no point to fix it up and we'll
be better by starting afresh.
Ying: I take it you'll know what to do to get the bot updated. As it
happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
list address, which has been long deprecated and then stopped working
altogether mid Jan this year. I have updated the cc appropriately with
this reply, but would you please amend whatever the bot requires for
further notices to be sent to <linux-mips@vger.kernel.org> instead?
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [kbuild-all] Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
2021-04-21 23:26 ` Maciej W. Rozycki
@ 2021-04-22 4:55 ` Rong Chen
-1 siblings, 0 replies; 5+ messages in thread
From: Rong Chen @ 2021-04-22 4:55 UTC (permalink / raw)
To: Maciej W. Rozycki, Huang, Ying, Thomas Bogendoerfer, kernel test robot
Cc: kbuild-all, linux-mips
On 4/22/21 7:26 AM, Maciej W. Rozycki wrote:
> On Thu, 22 Apr 2021, kernel test robot wrote:
>
>> fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>>>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>> 74 | __asm__("divu $0, %z1, %z2" \
>> | ^~~~~~~
> Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
>
> I think this asm can go and GCC will do equally well with plain C code.
> Or actually marginally better, as preliminary benchmarking shows, owing to
> a slightly better instruction scheduling. Code produced for test_div64 is
> also slightly smaller for some reason. That's at least for the ISAs up to
> R5, which do have DIVU. Well, I can't complain.
>
> For R6 compiled code will work, but separate DIVU and MODU instructions
> will be produced, which are also interlocked, so scalar implementations
> will likely not perform as well as older ISAs with their asynchronous MD
> unit. Likely still faster then the generic algorithm though.
>
> Thomas: I'll collect new figures and respin the series. Please do drop
> the original series then; I think there's no point to fix it up and we'll
> be better by starting afresh.
>
> Ying: I take it you'll know what to do to get the bot updated. As it
> happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
> list address, which has been long deprecated and then stopped working
> altogether mid Jan this year. I have updated the cc appropriately with
> this reply, but would you please amend whatever the bot requires for
> further notices to be sent to <linux-mips@vger.kernel.org> instead?
>
> Maciej
Hi Maciej,
Thanks for the advice, we have updated the mailing list.
Best Regards,
Rong Chen
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
@ 2021-04-22 4:55 ` Rong Chen
0 siblings, 0 replies; 5+ messages in thread
From: Rong Chen @ 2021-04-22 4:55 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 1826 bytes --]
On 4/22/21 7:26 AM, Maciej W. Rozycki wrote:
> On Thu, 22 Apr 2021, kernel test robot wrote:
>
>> fs/xfs/libxfs/xfs_alloc_btree.c: In function 'xfs_allocbt_free_block':
>>>> arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm'
>> 74 | __asm__("divu $0, %z1, %z2" \
>> | ^~~~~~~
> Umm, I forgot we do support MIPSr6, unlike microMIPSr6.
>
> I think this asm can go and GCC will do equally well with plain C code.
> Or actually marginally better, as preliminary benchmarking shows, owing to
> a slightly better instruction scheduling. Code produced for test_div64 is
> also slightly smaller for some reason. That's at least for the ISAs up to
> R5, which do have DIVU. Well, I can't complain.
>
> For R6 compiled code will work, but separate DIVU and MODU instructions
> will be produced, which are also interlocked, so scalar implementations
> will likely not perform as well as older ISAs with their asynchronous MD
> unit. Likely still faster then the generic algorithm though.
>
> Thomas: I'll collect new figures and respin the series. Please do drop
> the original series then; I think there's no point to fix it up and we'll
> be better by starting afresh.
>
> Ying: I take it you'll know what to do to get the bot updated. As it
> happens it uses the old <linux-mips@linux-mips.org> MIPS/Linux mailing
> list address, which has been long deprecated and then stopped working
> altogether mid Jan this year. I have updated the cc appropriately with
> this reply, but would you please amend whatever the bot requires for
> further notices to be sent to <linux-mips@vger.kernel.org> instead?
>
> Maciej
Hi Maciej,
Thanks for the advice, we have updated the mailing list.
Best Regards,
Rong Chen
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-04-22 4:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-21 20:24 [mips-linux:mips-next 98/101] arch/mips/include/asm/div64.h:74:3: error: inconsistent operand constraints in an 'asm' kernel test robot
2021-04-21 23:26 ` Maciej W. Rozycki
2021-04-21 23:26 ` Maciej W. Rozycki
2021-04-22 4:55 ` [kbuild-all] " Rong Chen
2021-04-22 4:55 ` Rong Chen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.