Wladimir J. van der Laan ce4e1f0282
Merge #18553: Avoid non-trivial global constants in SHA-NI code
850847309458f43fc7ce6c13fa08c86e1cae042a Avoid non-trivial global constants in SHA-NI code (Pieter Wuille)

Pull request description:

  This is a potential solution for #18456.

  It seems that the compiler cannot turn `_mm_set_epi64x(<constant>,<constnant>)` into a constant itself, and thus emits a global initializer for the `MASK`, `INIT0`, and `INIT1` global constants in the sha-ni SHA256 implementation.

  Change this by turning them into dumb byte arrays, loading them into an SSE variable whenever needed.

  Tested on a SHA-NI capable machine. I do not observe any obvious performance impact (but this is hard to measure, it's already very fast...).

ACKs for top commit:
  laanwj:
    Code review ACK 850847309458f43fc7ce6c13fa08c86e1cae042a
  elichai:
    ACK 850847309458f43fc7ce6c13fa08c86e1cae042a

Tree-SHA512: 07049cf1a33624c22df2be48b814d5636c037b368861eb13ee073bdce2b7c902a56e96518218961f55a2a1631a40825ded6dbbc28d7fe0e7fec267d704e39112
2020-04-22 15:09:19 +02:00
..
2020-02-09 07:44:29 -08:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2019-02-22 17:38:45 -08:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2020-03-29 11:45:46 -04:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2020-03-27 08:59:06 -04:00
2020-04-16 13:33:09 -04:00
2020-04-16 13:33:09 -04:00
2020-03-17 14:07:58 -04:00