Allow `_end` to be more than 1MB away from code
Allow `_end` to be more than 1MB away from code

The PC relative load (`adr`) requires the destination label to be
within 1MB of the instruction itself.  If for example, the HEAP_SIZE
is increased too much, this can push the `_end` pass this limit.

Replace the single `adr` instruction with a pair (`adrp`, `add`) to
allow the symbol to load from any address.

Note that the increasing the heap size too much causes other failures.

Fixes #942.

Signed-off-by: David Brown <0af22db655f3ade5845314d695c1f4910314b0cb@linaro.org>
Reviewed-by: Jerome Forissier <ced78d268b4c9a0a20a59a9feeebd2ad90da03d3@linaro.org>
Tested-by: Jerome Forissier <ced78d268b4c9a0a20a59a9feeebd2ad90da03d3@linaro.org> (HiKey)

matt2048/optee_os,pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os,matt2048/optee_os,pascal-brand-st-dev/optee_os,matt2048/optee_os,pascal-brand-st-dev/optee_os,pascal-brand-st-dev/optee_os,matt2048/optee_os