src/os_cpu/linux_x86/vm/linux_x86_32.ad

changeset 855
a1980da045cc
parent 435
a61af66fc99e
child 905
ad8c8ca4ab0f
equal deleted inserted replaced
854:0bf25c4807f9 855: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 %}

mercurial