static int getHi20(int target) {
		int target_h = target & 0xfffff000;
		// the low order 12 bits are sign-extended before adding, so we may need to adjust the high order 20 bits
		if ((target & 0x00000800) == 0x800) {
			target_h = target_h + 0x1000;
		}
		return target_h;
	}
Get the adjusted 20 high bits of a 32 bit target.  The lower 12 bits will
be found in a later instruction, using a sign-extended signed addition.  If those
12 bits will be seen as negative, we need to increment the higher bits by one
@param target a 32 bit offset
@return the higher 20 bits possibly incremented by 0x1000
Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java