A small favor if you can PrintAssembly on non x86?
Dennis Byrne
dennisbyrne at apache.org
Fri Nov 27 18:09:55 UTC 2009
Thank you very much Christian. I find it interesting that you have
one full fence for the write method while I get two on an x86. The
write method performs two writes, so the VM must separate both writes
with a StoreStore barrier. According to the "Here's how these
processors support barriers" section in the cookbook [1] these are no
ops on both platforms. This explains why your compiler is not putting
a fence between both writes, so I am curious why mine still does.
Yours w/ one fence (on sparc)
0xfa8eceac: mov 0x2a, %l0 ;...a010202a
0xfa8eceb0: st %l0, [ %l1 + 0x150 ] ;...e0246150
0xfa8eceb4: mov 1, %l2 ;...a4102001
0xfa8eceb8: stb %l2, [ %l1 + 0x154 ] ;...e42c6154
0xfa8ecebc: membar #StoreLoad ;...8143e002
Mine with two fences (on x86)
0x00f7801d: mov $0x95ba53c0,%esi ;...bec053ba 95
; {oop()}
0x00f78022: mov $0x2a,%edi ;...bf2a0000 00
0x00f78027: mov %edi,0x148(%esi) ;...89be4801 0000
0x00f7802d: mfence ;...0faef0
0x00f78030: mov $0x1,%edi ;...bf010000 00
0x00f78035: mov %edi,%ebx ;...8bdf
0x00f78037: mov %bl,0x14c(%esi) ;...889e4c01 0000
0x00f7803d: mfence ;...0faef0
[1] http://gee.cs.oswego.edu/dl/jmm/cookbook.html
Dennis
On Fri, Nov 27, 2009 at 10:30 AM, Christian Thalinger
<Christian.Thalinger at sun.com> wrote:
> On Fri, 2009-11-27 at 06:42 -0900, Dennis Byrne wrote:
>> $ wget http://people.apache.org/~dennisbyrne/memory/WriterReader.java
>> $ javac WriterReader.java
>> $ java -XX:+UnlockDiagnosticVMOptions
>> -XX:PrintAssemblyOptions=hsdis-print-bytes
>> -XX:CompileCommand=print,WriterReader.write WriterReader > write.txt
>> $ java -XX:+UnlockDiagnosticVMOptions
>> -XX:PrintAssemblyOptions=hsdis-print-bytes
>> -XX:CompileCommand=print,WriterReader.read WriterReader > read.txt
>>
>> Ideal would be Itanium or PPC output. These memory models are much
>> different and would give me more examples to write about. The weaker
>> the better. Sparc would still be interesting also.
>>
>> Getting a hold of a non-x86 system has been more difficult than
>> writing the article itself. Any help you can give me is greatly
>> appreciated.
>
> I did a run on SPARC for you (had to increase the loop length a little).
>
> -- Christian
>
--
Dennis Byrne
More information about the discuss
mailing list