mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 11:04:34 +02:00
8031321: Support Intel bit manipulation instructions
Add support for BMI1 instructions Reviewed-by: kvn, roland
This commit is contained in:
parent
1a1f9f0871
commit
768beb9a23
11 changed files with 1280 additions and 13 deletions
|
@ -660,6 +660,7 @@ int InstructForm::memory_operand(FormDict &globals) const {
|
|||
int USE_of_memory = 0;
|
||||
int DEF_of_memory = 0;
|
||||
const char* last_memory_DEF = NULL; // to test DEF/USE pairing in asserts
|
||||
const char* last_memory_USE = NULL;
|
||||
Component *unique = NULL;
|
||||
Component *comp = NULL;
|
||||
ComponentList &components = (ComponentList &)_components;
|
||||
|
@ -681,7 +682,16 @@ int InstructForm::memory_operand(FormDict &globals) const {
|
|||
assert(0 == strcmp(last_memory_DEF, comp->_name), "every memory DEF is followed by a USE of the same name");
|
||||
last_memory_DEF = NULL;
|
||||
}
|
||||
USE_of_memory++;
|
||||
// Handles same memory being used multiple times in the case of BMI1 instructions.
|
||||
if (last_memory_USE != NULL) {
|
||||
if (strcmp(comp->_name, last_memory_USE) != 0) {
|
||||
USE_of_memory++;
|
||||
}
|
||||
} else {
|
||||
USE_of_memory++;
|
||||
}
|
||||
last_memory_USE = comp->_name;
|
||||
|
||||
if (DEF_of_memory == 0) // defs take precedence
|
||||
unique = comp;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue