In a system and method for linking and unlinking code fragments stored in a
code cache, a memory area is associated with a branch in a first code
fragment that branches outside the cache. If the branch can be set to
branch to a location in a second code fragment stored in the cache, branch
reconstruction information is stored in the memory area associated with
the branch, and the branch instruction is updated to branch to the
location in the second code fragment, thereby linking the first code
fragment to the second code fragment. If it is determined that the
previously linked branch should be unlinked, the first and second code
fragments at that branch are unlinked by reading the information stored in
the associated memory area at the time of linking, and using that
information to reset the branch to its state prior to the linking.
Σε ένα σύστημα και μια μέθοδο για και τα τεμάχια κώδικα που αποθηκεύονται σε μια κρύπτη κώδικα, μια περιοχή μνήμης συνδέεται με έναν κλάδο σε ένα πρώτο τεμάχιο κώδικα που διακλαδίζεται έξω από την κρύπτη. Εάν ο κλάδος μπορεί να τεθεί ως στόχος να διακλαδιστεί σε μια θέση σε ένα δεύτερο τεμάχιο κώδικα που αποθηκεύεται στην κρύπτη, διακλαδιστείτε πληροφορίες αναδημιουργίας αποθηκεύεται στην περιοχή μνήμης που συνδέεται με τον κλάδο, και η οδηγία κλάδων ενημερώνεται για να διακλαδιστεί στη θέση στο δεύτερο τεμάχιο κώδικα, με αυτόν τον τρόπο συνδεόμενος το πρώτο τεμάχιο κώδικα με το δεύτερο τεμάχιο κώδικα. Εάν καθορίζεται ότι ο προηγουμένως συνδεμένος κλάδος πρέπει να αποσυνδεθεί, τα πρώτα και δεύτερα τεμάχια κώδικα σε εκείνο τον κλάδο αποσυνδέονται με την ανάγνωση των πληροφοριών που αποθηκεύονται στη σχετική περιοχή μνήμης κατά την διάρκεια της σύνδεσης, και τη χρησιμοποίηση εκείνων των πληροφοριών για να επαναρυθμίσουν τον κλάδο στο κράτος του πριν από τη σύνδεση.