Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/x86_64.ad @ 14457:45467c53f178
Merge
author | kvn |
---|---|
date | Tue, 28 Jan 2014 12:28:17 -0800 |
parents | 50fdb38839eb 7e8bd81ce93e |
children | 5292439ef895 a433eb716ce1 |
comparison
equal
deleted
inserted
replaced
14456:abec000618bf | 14457:45467c53f178 |
---|---|
3092 op_cost(10); | 3092 op_cost(10); |
3093 format %{ %} | 3093 format %{ %} |
3094 interface(CONST_INTER); | 3094 interface(CONST_INTER); |
3095 %} | 3095 %} |
3096 | 3096 |
3097 // Int Immediate non-negative | |
3098 operand immU31() | |
3099 %{ | |
3100 predicate(n->get_int() >= 0); | |
3101 match(ConI); | |
3102 | |
3103 op_cost(0); | |
3104 format %{ %} | |
3105 interface(CONST_INTER); | |
3106 %} | |
3107 | |
3097 // Constant for long shifts | 3108 // Constant for long shifts |
3098 operand immI_32() | 3109 operand immI_32() |
3099 %{ | 3110 %{ |
3100 predicate( n->get_int() == 32 ); | 3111 predicate( n->get_int() == 32 ); |
3101 match(ConI); | 3112 match(ConI); |
5048 __ movzwq($dst$$Register, $mem$$Address); | 5059 __ movzwq($dst$$Register, $mem$$Address); |
5049 %} | 5060 %} |
5050 ins_pipe(ialu_reg_mem); | 5061 ins_pipe(ialu_reg_mem); |
5051 %} | 5062 %} |
5052 | 5063 |
5053 // Load Integer with a 32-bit mask into Long Register | 5064 // Load Integer with a 31-bit mask into Long Register |
5054 instruct loadI2L_immI(rRegL dst, memory mem, immI mask, rFlagsReg cr) %{ | 5065 instruct loadI2L_immU31(rRegL dst, memory mem, immU31 mask, rFlagsReg cr) %{ |
5055 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); | 5066 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); |
5056 effect(KILL cr); | 5067 effect(KILL cr); |
5057 | 5068 |
5058 format %{ "movl $dst, $mem\t# int & 32-bit mask -> long\n\t" | 5069 format %{ "movl $dst, $mem\t# int & 31-bit mask -> long\n\t" |
5059 "andl $dst, $mask" %} | 5070 "andl $dst, $mask" %} |
5060 ins_encode %{ | 5071 ins_encode %{ |
5061 Register Rdst = $dst$$Register; | 5072 Register Rdst = $dst$$Register; |
5062 __ movl(Rdst, $mem$$Address); | 5073 __ movl(Rdst, $mem$$Address); |
5063 __ andl(Rdst, $mask$$constant); | 5074 __ andl(Rdst, $mask$$constant); |