Wed, 10 Aug 2016 15:46:08 +0800
Performance of long integer division is 100% up.
public class Test {
public static void main(String[] args) {
long LEN = 650000000;
long result = 0;
for(long j = 1; j < 20; j++) {
result = 0;
for(long i = 1; i < LEN; i++){
result += i / (j + 1);
}
}
System.out.println("result = " + result);
}
}
src/cpu/mips/vm/mips_64.ad | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/mips_64.ad Wed Aug 10 14:32:49 2016 +0800 1.2 +++ b/src/cpu/mips/vm/mips_64.ad Wed Aug 10 15:46:08 2016 +0800 1.3 @@ -8504,8 +8504,12 @@ 1.4 Register op1 = as_Register($src1$$reg); 1.5 Register op2 = as_Register($src2$$reg); 1.6 1.7 - __ ddiv(op1, op2); 1.8 - __ mflo(dst); 1.9 + if (UseLoongsonISA) { 1.10 + __ gsddiv(dst, op1, op2); 1.11 + } else { 1.12 + __ ddiv(op1, op2); 1.13 + __ mflo(dst); 1.14 + } 1.15 %} 1.16 ins_pipe( pipe_slow ); 1.17 %}