Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/x86_64.ad @ 168:7793bd37a336
6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Summary: Generate addresses and implicit null checks with narrow oops to avoid decoding.
Reviewed-by: jrose, never
author | kvn |
---|---|
date | Thu, 29 May 2008 12:04:14 -0700 |
parents | c436414a719e |
children | 9148c65abefc |
comparison
equal
deleted
inserted
replaced
167:feeb96a45707 | 168:7793bd37a336 |
---|---|
5200 scale($scale); | 5200 scale($scale); |
5201 disp($off); | 5201 disp($off); |
5202 %} | 5202 %} |
5203 %} | 5203 %} |
5204 | 5204 |
5205 // Indirect Memory Times Scale Plus Index Register Plus Offset Operand | 5205 // Indirect Narrow Oop Plus Offset Operand |
5206 operand indIndexScaleOffsetComp(rRegN src, immL32 off, r12RegL base) %{ | 5206 operand indNarrowOopOffset(rRegN src, immL32 off) %{ |
5207 constraint(ALLOC_IN_RC(ptr_reg)); | 5207 constraint(ALLOC_IN_RC(ptr_reg)); |
5208 match(AddP (DecodeN src base) off); | 5208 match(AddP (DecodeN src) off); |
5209 | 5209 |
5210 op_cost(10); | 5210 op_cost(10); |
5211 format %{"[$base + $src << 3 + $off] (compressed)" %} | 5211 format %{"[R12 + $src << 3 + $off] (compressed oop addressing)" %} |
5212 interface(MEMORY_INTER) %{ | 5212 interface(MEMORY_INTER) %{ |
5213 base($base); | 5213 base(0xc); // R12 |
5214 index($src); | 5214 index($src); |
5215 scale(0x3); | 5215 scale(0x3); |
5216 disp($off); | 5216 disp($off); |
5217 %} | 5217 %} |
5218 %} | 5218 %} |
5363 // multiple operand types with the same basic encoding and format. The classic | 5363 // multiple operand types with the same basic encoding and format. The classic |
5364 // case of this is memory operands. | 5364 // case of this is memory operands. |
5365 | 5365 |
5366 opclass memory(indirect, indOffset8, indOffset32, indIndexOffset, indIndex, | 5366 opclass memory(indirect, indOffset8, indOffset32, indIndexOffset, indIndex, |
5367 indIndexScale, indIndexScaleOffset, indPosIndexScaleOffset, | 5367 indIndexScale, indIndexScaleOffset, indPosIndexScaleOffset, |
5368 indIndexScaleOffsetComp); | 5368 indNarrowOopOffset); |
5369 | 5369 |
5370 //----------PIPELINE----------------------------------------------------------- | 5370 //----------PIPELINE----------------------------------------------------------- |
5371 // Rules which define the behavior of the target architectures pipeline. | 5371 // Rules which define the behavior of the target architectures pipeline. |
5372 pipeline %{ | 5372 pipeline %{ |
5373 | 5373 |