r356702 glebius Jan. 13, 2020, 9:12 p.m.
aliases with hard error from other operations.

Reported by:	flo
ViewVC
r356701 dim Jan. 13, 2020, 8:31 p.m.
[mips] Use less registers to load address of TargetExternalSymbol

  There is no pattern matched `add hi, (MipsLo texternalsym)`. As a
  result, loading an address of 32-bit symbol requires two registers
  and one more additional instruction:
  ```
  addiu $1, $zero, %lo(foo)
  lui   $2, %hi(foo)
  addu  $25, $2, $1
  ```

  This patch adds the missed pattern and enables generation more
  effective set of instructions:
  ```
  lui   $1, %hi(foo)
  addiu $25, $1, %lo(foo)
  ```

  Differential Revision: https://reviews.llvm.org/D66771

  llvm-svn: 370196

Merge commit 59bb3609f from llvm git (by Simon Atanasyan):

  [mips] Fix 64-bit address loading in case of applying 32-bit mask to
  the result

  If result of 64-bit address loading combines with 32-bit mask, LLVM
  tries to optimize the code and remove "redundant" loading of upper
  32-bits of the address. It leads to incorrect code on MIPS64 targets.

  MIPS backend creates the following chain of commands to load 64-bit
  address in the `MipsTargetLowering::getAddrNonPICSym64` method:
  ```
  (add (shl (add (shl (add %highest(sym), %higher(sym)),
		      16),
		 %hi(sym)),
	    16),
       %lo(%sym))
  ```

  If the mask presents, LLVM decides to optimize the chain of commands.
  It really does not make sense to load upper 32-bits because the
  0x0fffffff mask anyway clears them. After removing redundant commands
  we get this chain:
  ```
  (add (shl (%hi(sym), 16), %lo(%sym))
  ```

  There is no patterns matched `(MipsHi (i64 symbol))`. Due a bug in
  `SYM_32` predicate definition, backend incorrectly selects a pattern
  for a 32-bit symbols and uses the `lui` instruction for loading
  `%hi(sym)`.

  As a result we get incorrect set of instructions with unnecessary
  16-bit left shifting:
  ```
  lui     at,0x0
      R_MIPS_HI16     foo
  dsll    at,at,0x10
  daddiu  at,at,0
      R_MIPS_LO16     foo
  ```

  This patch resolves two problems:
  - Fix `SYM_32/SYM_64` predicates to prevent selection of patterns
    dedicated to 32-bit symbols in case of using N64 ABI.
  - Add missed patterns for 64-bit symbols for `%hi/%lo`.

  Fix PR42736.

  Differential Revision: https://reviews.llvm.org/D66228

  llvm-svn: 370268

These two commits fix a miscompilation of the kernel for mips64, and
should allow clang to be used as the default compiler for mips64.

Requested by:	arichards
MFC after:	3 days
ViewVC
r356700 tsoome Jan. 13, 2020, 8:02 p.m.
memalign by 4 will reduce alignment for some platforms. Thanks for Ian for
pointing this out.
ViewVC
r356695 markj Jan. 13, 2020, 6:29 p.m.
Once we know whether the files differ, we don't need to do any further
work.

PR:		242828
Submitted by:	fehmi noyan isi <fnoyanisi@yahoo.com> (original version)
Reviewed by:	bapt, kevans
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D23152
ViewVC
r356694 kevans Jan. 13, 2020, 6:26 p.m.
This provides a specific pointer for users of tap(4) to understand why their
interfaces are losing their addresses, and specifically how to workaround
this if they need different behavior.

This manpage received a .Dd bump earlier today in r35688, so no bump occurs
this time.

Submitted by:	sigsys@gmail.com (via IRC)
ViewVC
r356693 tsoome Jan. 13, 2020, 6:22 p.m.
Use memalign(4, size) to ensure we have properly aligned buffer.

MFC after:	2 weeks
ViewVC
r356688 kevans Jan. 13, 2020, 5:02 p.m.
If one comes across a vmnet interface, this is a useful pointer to have
towards what it actually is if they're otherwise unfamiliar.

MFC after:	3 days
ViewVC
r356687 kp Jan. 13, 2020, 4:52 p.m.
Add a missing riscv.h header file, and fix the check for riscv (must test
MACHINE_CPUARCH, not MACHINE_ARCH, if we want to use 'riscv').

Sponsored by:	Axiado
ViewVC
r356686 gjb Jan. 13, 2020, 4:31 p.m.
MFC after:	3 days
Sponsored by:	Rubicon Communications, LLC (netgate.com)
ViewVC
r356685 gjb Jan. 13, 2020, 4:31 p.m.
cloudware targets when OSRELEASE is overridden.

Submitted by:	Trond Endrestol
PR:		243287
MFC after:	3 days
Sponsored by:	Rubicon Communications, LLC (netgate.com)
ViewVC
r356684 emaste Jan. 13, 2020, 2:50 p.m.
r356683 mjg Jan. 13, 2020, 2:33 p.m.
Part of i_flag can persist across a drop to hold count of 0, at which
point the vnode is taken off the lazy list. Then whoever locks and unlocks
the vnode can trip on the assert.

This trips over kyua running a test untarring character devices to ufs.

Reported by:	lwhsu
ViewVC
r356682 kib Jan. 13, 2020, 2:30 p.m.
Reviewed by:	hselasky, markj
Sponsored by:	Mellanox Technologies
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D23150
ViewVC
r356678 cy Jan. 13, 2020, 6:55 a.m.
r356677 cy Jan. 13, 2020, 6:55 a.m.