decoder.isa (12695:3df197da6069) decoder.isa (12807:0baf4adc1a45)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2015 RISC-V Foundation
4// Copyright (c) 2017 The University of Virginia
5// All rights reserved.
6//
7// Redistribution and use in source and binary forms, with or without
8// modification, are permitted provided that the following conditions are

--- 433 unchanged lines hidden (view full) ---

442 0x0: addiw({{
443 Rd_sd = Rs1_sw + imm;
444 }}, int32_t);
445 0x1: slliw({{
446 Rd_sd = Rs1_sw << SHAMT5;
447 }});
448 0x5: decode SRTYPE {
449 0x0: srliw({{
1// -*- mode:c++ -*-
2
3// Copyright (c) 2015 RISC-V Foundation
4// Copyright (c) 2017 The University of Virginia
5// All rights reserved.
6//
7// Redistribution and use in source and binary forms, with or without
8// modification, are permitted provided that the following conditions are

--- 433 unchanged lines hidden (view full) ---

442 0x0: addiw({{
443 Rd_sd = Rs1_sw + imm;
444 }}, int32_t);
445 0x1: slliw({{
446 Rd_sd = Rs1_sw << SHAMT5;
447 }});
448 0x5: decode SRTYPE {
449 0x0: srliw({{
450 Rd = Rs1_uw >> SHAMT5;
450 Rd_sd = (int32_t)(Rs1_uw >> SHAMT5);
451 }});
452 0x1: sraiw({{
453 Rd_sd = Rs1_sw >> SHAMT5;
454 }});
455 }
456 }
457 }
458

--- 295 unchanged lines hidden (view full) ---

754 && Rs2_sw == -1) {
755 Rd_sd = numeric_limits<int32_t>::min();
756 } else {
757 Rd_sd = Rs1_sw/Rs2_sw;
758 }
759 }}, IntDivOp);
760 0x5: decode FUNCT7 {
761 0x0: srlw({{
451 }});
452 0x1: sraiw({{
453 Rd_sd = Rs1_sw >> SHAMT5;
454 }});
455 }
456 }
457 }
458

--- 295 unchanged lines hidden (view full) ---

754 && Rs2_sw == -1) {
755 Rd_sd = numeric_limits<int32_t>::min();
756 } else {
757 Rd_sd = Rs1_sw/Rs2_sw;
758 }
759 }}, IntDivOp);
760 0x5: decode FUNCT7 {
761 0x0: srlw({{
762 Rd_uw = Rs1_uw >> Rs2<4:0>;
762 Rd_sd = (int32_t)(Rs1_uw >> Rs2<4:0>);
763 }});
764 0x1: divuw({{
765 if (Rs2_uw == 0) {
766 Rd_sd = numeric_limits<IntReg>::max();
767 } else {
768 Rd_sd = (int32_t)(Rs1_uw/Rs2_uw);
769 }
770 }}, IntDivOp);

--- 958 unchanged lines hidden ---
763 }});
764 0x1: divuw({{
765 if (Rs2_uw == 0) {
766 Rd_sd = numeric_limits<IntReg>::max();
767 } else {
768 Rd_sd = (int32_t)(Rs1_uw/Rs2_uw);
769 }
770 }}, IntDivOp);

--- 958 unchanged lines hidden ---