The present invention provides a method and apparatus for executing a
boundary check instruction that provides accelerated bound checking. The
instruction can be used to determine whether an array address represents a
null pointer, and whether an array index is less than zero or greater than
the size of the array. Three extensions of a boundary check instruction
are provided, with each performing a different combination of three
boundary check comparisons. One comparison compares a first operand, which
may contain the base address of an array, to zero. Another comparison
evaluates the value of a second operand, which may contain an index
offset, to determine if it is less than zero. The other comparison
evaluates whether the value of the second operand is greater than or equal
to a third operand. The third operand may indicate the size of an array. A
trap is generated if any of the comparisons evaluates to true.
Η παρούσα εφεύρεση παρέχει μια μέθοδο και μια συσκευή για μια οδηγία ελέγχου ορίου που παρέχει τον επιταχυνόμενο συνδεδεμένο έλεγχο. Η οδηγία μπορεί να χρησιμοποιηθεί για να καθορίσει εάν μια διεύθυνση σειράς αντιπροσωπεύει έναν μηδενικό δείκτη, και εάν ένας δείκτης σειράς είναι λιγότερο από μηδέν ή μεγαλύτερος από το μέγεθος της σειράς. Σε τρεις επεκτάσεις μιας οδηγίας ελέγχου ορίου παρέχεται, κάθε μια που εκτελεί έναν διαφορετικό συνδυασμό τριών συγκρίσεων ελέγχου ορίου. Μια σύγκριση συγκρίνει έναν πρώτο τελεστέο, που μπορεί να περιέχει τη διεύθυνση βάσεων μιας σειράς, σε μηδέν. Μια άλλη σύγκριση αξιολογεί την αξία ενός δεύτερου τελεστέου, που μπορεί να περιέχει ένα όφσετ δεικτών, για να καθορίσει εάν είναι λιγότερο από μηδέν. Η άλλη σύγκριση αξιολογεί εάν η αξία του δεύτερου τελεστέου είναι μεγαλύτερο ή ίσο ένας τρίτος τελεστέος. Ο τρίτος τελεστέος μπορεί να δείξει το μέγεθος μιας σειράς. Μια παγίδα παράγεται εάν οποιαδήποτε από τις συγκρίσεις αξιολογεί σε αληθινό.