Simon Atanasyan d34a3631b2 [ELF][MIPS] Calculate relocations agains _gp_disp / __gnu_local_gp using dedicated 'expressions'
The patch introduces two new relocations expressions R_MIPS_GOT_GP and
R_MIPS_GOT_GP_PC. The first one represents a current value of `_gp`
pointer and used to calculate relocations against the `__gnu_local_gp`
symbol. The second one represents the offset between the beginning of
the function and the `_gp` pointer's value.

There are two motivations for introducing new expressions:
- It's better to keep all non-trivial relocation calculations in the
  single place - `getRelocTargetVA` function.
- Relocations against both `_gp_disp` and `__gnu_local_gp` symbols
  depend on the `_gp` value. It's a magical value points to the "middle"
  of GOT. Now all relocations use a common `_gp` value. But in fact,
  under some conditions each input file might require its own `_gp`
  value. I'm going to implement it in the future patches. So it's
  better to make `MipsGotSection` responsible for calculation of
  the `_gp` value.

llvm-svn: 298306
2017-03-20 21:03:43 +00:00
..
2016-11-29 03:30:07 +00:00
2016-10-26 18:59:00 +00:00
2016-06-07 09:31:52 +00:00
2016-11-18 00:11:12 +00:00
2016-06-07 09:31:52 +00:00
2016-07-25 16:51:52 +00:00
2016-11-11 23:10:22 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2016-07-25 16:51:52 +00:00
2017-02-03 21:29:51 +00:00
2016-09-02 17:19:28 +00:00
2016-07-21 20:18:30 +00:00
2016-12-06 13:43:34 +00:00
2017-02-03 21:29:51 +00:00
2017-02-03 21:29:51 +00:00
2016-11-04 23:26:29 +00:00
2016-04-07 20:41:41 +00:00
2017-02-23 08:09:51 +00:00
2016-05-28 15:38:13 +00:00
2016-02-25 18:43:51 +00:00
2016-09-02 17:19:28 +00:00
2016-09-02 17:19:28 +00:00
2016-02-25 18:43:51 +00:00
2016-12-05 01:31:39 +00:00
2017-02-27 13:21:18 +00:00
2017-02-28 22:42:49 +00:00
2016-12-07 20:29:46 +00:00
2016-02-12 20:54:57 +00:00
2016-12-05 20:53:11 +00:00
2017-02-03 21:29:51 +00:00
2016-11-05 22:58:01 +00:00
2017-02-28 19:06:32 +00:00
2017-02-28 19:06:32 +00:00
2017-02-28 19:06:32 +00:00
2016-03-03 18:44:38 +00:00
2016-03-01 13:23:29 +00:00
2016-09-22 16:47:21 +00:00
2016-12-05 20:49:16 +00:00
2016-12-05 22:27:21 +00:00
2016-11-01 18:30:28 +00:00
2016-04-29 23:28:36 +00:00
2017-02-10 20:10:16 +00:00
2017-02-10 20:10:16 +00:00
2016-12-02 08:00:09 +00:00
2017-02-21 21:41:50 +00:00
2016-02-05 22:55:06 +00:00
2017-02-02 21:26:23 +00:00
2016-11-02 02:18:01 +00:00
2016-12-03 15:26:18 +00:00
2016-06-20 17:58:09 +00:00
2016-04-08 20:49:31 +00:00
2016-05-04 20:06:49 +00:00
2016-11-23 05:14:01 +00:00
2016-12-09 22:40:49 +00:00
2016-06-09 15:45:49 +00:00
2016-04-15 11:57:07 +00:00
2016-01-07 17:20:07 +00:00
2016-07-12 23:28:33 +00:00
2017-02-13 16:21:34 +00:00