token_unseal: leave scalar in temporary register

It doesn't hurt to leave a caller-provided capability in a dead
temporary register, but it hurts even less to leave a scalar instead.

Co-authored-by: David Chisnall <github@theravensnest.org>
diff --git a/sdk/core/token_library/token_unseal.S b/sdk/core/token_library/token_unseal.S
index 62eaece..39cfc2e 100644
--- a/sdk/core/token_library/token_unseal.S
+++ b/sdk/core/token_library/token_unseal.S
@@ -36,9 +36,9 @@
    *
    *  - a2 contains the expected sealing type.
    *
-   *  - t0/ct0 holds a copy of the user key
+   *  - t0 holds a copy of the user key's address field (authorized type)
    *
-   *  - t1/ct1 is used within each local computation and never holds secrets
+   *  - t1 is used within each local computation and never holds secrets
    */
 
   /* Verify key tag */
@@ -56,8 +56,8 @@
   andi     t1, t1, CHERI_PERM_UNSEAL
   beqz     t1, .Lexit_failure
 
-  /* Copy key capability to scratch register */
-  cmove ct0, ca0
+  /* Copy key type to scratch register */
+  cgetaddr t0, ca0
 
   /*
    * Load unsealing root capability, to be clobbered by return value
@@ -82,10 +82,7 @@
    */
   clw t1, TokenSObj_offset_type(ca0)
 
-  /*
-   * Verify that the loaded value matches the address of the key (via as-integer
-   * access to capability register ct0).
-   */
+  /* Verify that the loaded value matches the address of the key. */
   bne t0, t1, .Lexit_failure
 
   /* Subset bounds to ->data */