[aarch64-port-dev ] RFR: Use pipe_serial instead of pipe_class_memory in store*_volatile

Edward Nevill edward.nevill at gmail.com
Wed Nov 26 15:27:23 UTC 2014


Hi,

The following patch fixes a problem in the pipeline scheduler whereby the store*_volatile ops were using pipe_class_memory rather than pipe_serial.

Tested with jtreg hotspot and langtools.

All the best,
Ed.

--- CUT HERE ---
# HG changeset patch
# User enevill
# Date 1417015242 0
#      Wed Nov 26 15:20:42 2014 +0000
# Node ID f9a67c52dc334a714139dddd36ecc647aacedc0d
# Parent  6fb37d6acb123dc55d754b4fdc9bbb9957ac61ac
Use pipe_serial instead of pipe_class_memory in store*_volatile

diff -r 6fb37d6acb12 -r f9a67c52dc33 src/cpu/aarch64/vm/aarch64.ad
--- a/src/cpu/aarch64/vm/aarch64.ad	Tue Nov 18 14:20:24 2014 +0000
+++ b/src/cpu/aarch64/vm/aarch64.ad	Wed Nov 26 15:20:42 2014 +0000
@@ -6226,7 +6226,7 @@
 
   ins_encode(aarch64_enc_stlrb(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Char/Short
@@ -6239,7 +6239,7 @@
 
   ins_encode(aarch64_enc_stlrh(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Integer
@@ -6253,7 +6253,7 @@
 
   ins_encode(aarch64_enc_stlrw(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Long (64 bit signed)
@@ -6266,7 +6266,7 @@
 
   ins_encode(aarch64_enc_stlr(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Pointer
@@ -6279,7 +6279,7 @@
 
   ins_encode(aarch64_enc_stlr(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Compressed Pointer
@@ -6292,7 +6292,7 @@
 
   ins_encode(aarch64_enc_stlrw(src, mem));
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // Store Float
@@ -6305,7 +6305,7 @@
 
   ins_encode( aarch64_enc_fstlrs(src, mem) );
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 // TODO
@@ -6321,7 +6321,7 @@
 
   ins_encode( aarch64_enc_fstlrd(src, mem) );
 
-  ins_pipe(pipe_class_memory);
+  ins_pipe(pipe_serial);
 %}
 
 //  ---------------- end of volatile loads and stores ----------------
--- CUT HERE ---




More information about the aarch64-port-dev mailing list