mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
6797305: Add LoadUB and LoadUI opcode class
Add a LoadUB (unsigned byte) and LoadUI (unsigned int) opcode class so we have these load optimizations in the first place and do not need to handle them in the matcher. Reviewed-by: never, kvn
This commit is contained in:
parent
26d192003f
commit
89cea91c48
17 changed files with 726 additions and 186 deletions
|
@ -70,6 +70,7 @@ const char *NameList::iter() {
|
|||
else return (_iter <_cur-1 ? _names[++_iter] : NULL);
|
||||
}
|
||||
const char *NameList::current() { return (_iter < _cur ? _names[_iter] : NULL); }
|
||||
const char *NameList::peek(int skip) { return (_iter + skip < _cur ? _names[_iter + skip] : NULL); }
|
||||
|
||||
// Return 'true' if current entry is signal
|
||||
bool NameList::current_is_signal() {
|
||||
|
@ -248,11 +249,13 @@ Form::DataType Form::ideal_to_Reg_type(const char *name) const {
|
|||
// True if 'opType', an ideal name, loads or stores.
|
||||
Form::DataType Form::is_load_from_memory(const char *opType) const {
|
||||
if( strcmp(opType,"LoadB")==0 ) return Form::idealB;
|
||||
if( strcmp(opType,"LoadUB")==0 ) return Form::idealB;
|
||||
if( strcmp(opType,"LoadUS")==0 ) return Form::idealC;
|
||||
if( strcmp(opType,"LoadD")==0 ) return Form::idealD;
|
||||
if( strcmp(opType,"LoadD_unaligned")==0 ) return Form::idealD;
|
||||
if( strcmp(opType,"LoadF")==0 ) return Form::idealF;
|
||||
if( strcmp(opType,"LoadI")==0 ) return Form::idealI;
|
||||
if( strcmp(opType,"LoadUI2L")==0 ) return Form::idealI;
|
||||
if( strcmp(opType,"LoadKlass")==0 ) return Form::idealP;
|
||||
if( strcmp(opType,"LoadNKlass")==0 ) return Form::idealN;
|
||||
if( strcmp(opType,"LoadL")==0 ) return Form::idealL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue