Mercurial > hg > truffle
comparison src/os_cpu/solaris_x86/vm/solaris_x86_32.ad @ 420:a1980da045cc
6462850: generate biased locking code in C2 ideal graph
Summary: Inline biased locking code in C2 ideal graph during macro nodes expansion
Reviewed-by: never
author | kvn |
---|---|
date | Fri, 07 Nov 2008 09:29:38 -0800 |
parents | 9ee9cf798b59 |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
419:0bf25c4807f9 | 420:a1980da045cc |
---|---|
108 //----------OS and Locking Instructions---------------------------------------- | 108 //----------OS and Locking Instructions---------------------------------------- |
109 | 109 |
110 // This name is KNOWN by the ADLC and cannot be changed. | 110 // This name is KNOWN by the ADLC and cannot be changed. |
111 // The ADLC forces a 'TypeRawPtr::BOTTOM' output type | 111 // The ADLC forces a 'TypeRawPtr::BOTTOM' output type |
112 // for this guy. | 112 // for this guy. |
113 instruct tlsLoadP(eAXRegP dst, eFlagsReg cr) %{ | 113 instruct tlsLoadP(eRegP dst, eFlagsReg cr) %{ |
114 match(Set dst (ThreadLocal)); | 114 match(Set dst (ThreadLocal)); |
115 effect(DEF dst, KILL cr); | 115 effect(DEF dst, KILL cr); |
116 | 116 |
117 format %{ "MOV EAX, Thread::current()" %} | 117 format %{ "MOV $dst, Thread::current()" %} |
118 ins_encode( solaris_tlsencode(dst) ); | 118 ins_encode( solaris_tlsencode(dst) ); |
119 ins_pipe( ialu_reg_fat ); | 119 ins_pipe( ialu_reg_fat ); |
120 %} | 120 %} |
121 | 121 |
122 instruct TLS(eAXRegP dst) %{ | 122 instruct TLS(eRegP dst) %{ |
123 match(Set dst (ThreadLocal)); | 123 match(Set dst (ThreadLocal)); |
124 | 124 |
125 expand %{ | 125 expand %{ |
126 tlsLoadP(dst); | 126 tlsLoadP(dst); |
127 %} | 127 %} |