Performance of long integer division is 100% up.

Wed, 10 Aug 2016 15:46:08 +0800

author
fujie
date
Wed, 10 Aug 2016 15:46:08 +0800
changeset 57
a604f59fea28
parent 56
06d9ad6e13ae
child 58
e381d4dd2bfc

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  %}

mercurial