cpu_s390x.s 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright 2019 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. //go:build gc
  5. // +build gc
  6. #include "textflag.h"
  7. // func stfle() facilityList
  8. TEXT ·stfle(SB), NOSPLIT|NOFRAME, $0-32
  9. MOVD $ret+0(FP), R1
  10. MOVD $3, R0 // last doubleword index to store
  11. XC $32, (R1), (R1) // clear 4 doublewords (32 bytes)
  12. WORD $0xb2b01000 // store facility list extended (STFLE)
  13. RET
  14. // func kmQuery() queryResult
  15. TEXT ·kmQuery(SB), NOSPLIT|NOFRAME, $0-16
  16. MOVD $0, R0 // set function code to 0 (KM-Query)
  17. MOVD $ret+0(FP), R1 // address of 16-byte return value
  18. WORD $0xB92E0024 // cipher message (KM)
  19. RET
  20. // func kmcQuery() queryResult
  21. TEXT ·kmcQuery(SB), NOSPLIT|NOFRAME, $0-16
  22. MOVD $0, R0 // set function code to 0 (KMC-Query)
  23. MOVD $ret+0(FP), R1 // address of 16-byte return value
  24. WORD $0xB92F0024 // cipher message with chaining (KMC)
  25. RET
  26. // func kmctrQuery() queryResult
  27. TEXT ·kmctrQuery(SB), NOSPLIT|NOFRAME, $0-16
  28. MOVD $0, R0 // set function code to 0 (KMCTR-Query)
  29. MOVD $ret+0(FP), R1 // address of 16-byte return value
  30. WORD $0xB92D4024 // cipher message with counter (KMCTR)
  31. RET
  32. // func kmaQuery() queryResult
  33. TEXT ·kmaQuery(SB), NOSPLIT|NOFRAME, $0-16
  34. MOVD $0, R0 // set function code to 0 (KMA-Query)
  35. MOVD $ret+0(FP), R1 // address of 16-byte return value
  36. WORD $0xb9296024 // cipher message with authentication (KMA)
  37. RET
  38. // func kimdQuery() queryResult
  39. TEXT ·kimdQuery(SB), NOSPLIT|NOFRAME, $0-16
  40. MOVD $0, R0 // set function code to 0 (KIMD-Query)
  41. MOVD $ret+0(FP), R1 // address of 16-byte return value
  42. WORD $0xB93E0024 // compute intermediate message digest (KIMD)
  43. RET
  44. // func klmdQuery() queryResult
  45. TEXT ·klmdQuery(SB), NOSPLIT|NOFRAME, $0-16
  46. MOVD $0, R0 // set function code to 0 (KLMD-Query)
  47. MOVD $ret+0(FP), R1 // address of 16-byte return value
  48. WORD $0xB93F0024 // compute last message digest (KLMD)
  49. RET