Browse Source

[sim, xcc] changed cvt/trunc to use GPRs for int args

this way, we don't have to futz with storing integers in recoded
floating-point registers.  too bad we lose some decoupling.
cs250
Andrew Waterman 16 years ago
parent
commit
fcdd030cbe
  1. 3
      riscv/insns/cvt_d_l.h
  2. 2
      riscv/insns/cvt_d_w.h
  3. 3
      riscv/insns/cvt_s_l.h
  4. 2
      riscv/insns/cvt_s_w.h
  5. 3
      riscv/insns/cvtu_d_l.h
  6. 2
      riscv/insns/cvtu_d_w.h
  7. 3
      riscv/insns/cvtu_s_l.h
  8. 2
      riscv/insns/cvtu_s_w.h
  9. 3
      riscv/insns/trunc_l_d.h
  10. 3
      riscv/insns/trunc_l_s.h
  11. 2
      riscv/insns/trunc_w_d.h
  12. 2
      riscv/insns/trunc_w_s.h
  13. 3
      riscv/insns/truncu_l_d.h
  14. 3
      riscv/insns/truncu_l_s.h
  15. 2
      riscv/insns/truncu_w_d.h
  16. 2
      riscv/insns/truncu_w_s.h

3
riscv/insns/cvt_d_l.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = i64_to_f64(FRS1);
FRDR = i64_to_f64(RS1);
set_fp_exceptions;

2
riscv/insns/cvt_d_w.h

@ -1,3 +1,3 @@
require_fp;
FRDR = i32_to_f64(FRS1);
FRDR = i32_to_f64(RS1);
set_fp_exceptions;

3
riscv/insns/cvt_s_l.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = i64_to_f32(FRS1);
FRDR = i64_to_f32(RS1);
set_fp_exceptions;

2
riscv/insns/cvt_s_w.h

@ -1,3 +1,3 @@
require_fp;
FRDR = i32_to_f32(FRS1);
FRDR = i32_to_f32(RS1);
set_fp_exceptions;

3
riscv/insns/cvtu_d_l.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = i64_to_f64(FRS1);
FRDR = i64_to_f64(RS1);
set_fp_exceptions;

2
riscv/insns/cvtu_d_w.h

@ -1,3 +1,3 @@
require_fp;
FRDR = ui32_to_f64(FRS1);
FRDR = ui32_to_f64(RS1);
set_fp_exceptions;

3
riscv/insns/cvtu_s_l.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = i64_to_f32(FRS1);
FRDR = i64_to_f32(RS1);
set_fp_exceptions;

2
riscv/insns/cvtu_s_w.h

@ -1,3 +1,3 @@
require_fp;
FRDR = ui32_to_f32(FRS1);
FRDR = ui32_to_f32(RS1);
set_fp_exceptions;

3
riscv/insns/trunc_l_d.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = f64_to_i64_r_minMag(FRS1,true);
RDR = f64_to_i64_r_minMag(FRS1,true);
set_fp_exceptions;

3
riscv/insns/trunc_l_s.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = f32_to_i64_r_minMag(FRS1,true);
RDR = f32_to_i64_r_minMag(FRS1,true);
set_fp_exceptions;

2
riscv/insns/trunc_w_d.h

@ -1,3 +1,3 @@
require_fp;
FRDR = f64_to_i32_r_minMag(FRS1,true);
RDR = f64_to_i32_r_minMag(FRS1,true);
set_fp_exceptions;

2
riscv/insns/trunc_w_s.h

@ -1,3 +1,3 @@
require_fp;
FRDR = f32_to_i32_r_minMag(FRS1,true);
RDR = f32_to_i32_r_minMag(FRS1,true);
set_fp_exceptions;

3
riscv/insns/truncu_l_d.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = f64_to_i64_r_minMag(FRS1,true);
RDR = f64_to_i64_r_minMag(FRS1,true);
set_fp_exceptions;

3
riscv/insns/truncu_l_s.h

@ -1,3 +1,4 @@
require64;
require_fp;
FRDR = f32_to_i64_r_minMag(FRS1,true);
RDR = f32_to_i64_r_minMag(FRS1,true);
set_fp_exceptions;

2
riscv/insns/truncu_w_d.h

@ -1,3 +1,3 @@
require_fp;
FRDR = f64_to_ui32_r_minMag(FRS1,true);
RDR = f64_to_ui32_r_minMag(FRS1,true);
set_fp_exceptions;

2
riscv/insns/truncu_w_s.h

@ -1,3 +1,3 @@
require_fp;
FRDR = f32_to_ui32_r_minMag(FRS1,true);
RDR = f32_to_ui32_r_minMag(FRS1,true);
set_fp_exceptions;

Loading…
Cancel
Save