Mercurial > hg > graal-compiler
comparison src/os_cpu/linux_x86/vm/linux_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 | a61af66fc99e |
children | ad8c8ca4ab0f |
comparison
equal
deleted
inserted
replaced
419:0bf25c4807f9 | 420:a1980da045cc |
---|---|
101 //----------OS and Locking Instructions---------------------------------------- | 101 //----------OS and Locking Instructions---------------------------------------- |
102 | 102 |
103 // This name is KNOWN by the ADLC and cannot be changed. | 103 // This name is KNOWN by the ADLC and cannot be changed. |
104 // The ADLC forces a 'TypeRawPtr::BOTTOM' output type | 104 // The ADLC forces a 'TypeRawPtr::BOTTOM' output type |
105 // for this guy. | 105 // for this guy. |
106 instruct tlsLoadP(eAXRegP dst, eFlagsReg cr) %{ | 106 instruct tlsLoadP(eRegP dst, eFlagsReg cr) %{ |
107 match(Set dst (ThreadLocal)); | 107 match(Set dst (ThreadLocal)); |
108 effect(DEF dst, KILL cr); | 108 effect(DEF dst, KILL cr); |
109 | 109 |
110 format %{ "MOV EAX, Thread::current()" %} | 110 format %{ "MOV $dst, Thread::current()" %} |
111 ins_encode( linux_tlsencode(dst) ); | 111 ins_encode( linux_tlsencode(dst) ); |
112 ins_pipe( ialu_reg_fat ); | 112 ins_pipe( ialu_reg_fat ); |
113 %} | 113 %} |
114 | 114 |
115 instruct TLS(eAXRegP dst) %{ | 115 instruct TLS(eRegP dst) %{ |
116 match(Set dst (ThreadLocal)); | 116 match(Set dst (ThreadLocal)); |
117 | 117 |
118 expand %{ | 118 expand %{ |
119 tlsLoadP(dst); | 119 tlsLoadP(dst); |
120 %} | 120 %} |