Skip to content

Commit

Permalink
Fixing address CSR sign extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
farzamgl authored and dpetrisko committed Jun 27, 2020
1 parent dfba674 commit b50a673
Showing 1 changed file with 18 additions and 45 deletions.
63 changes: 18 additions & 45 deletions bp_common/src/include/bp_common_csr_defines.vh
Original file line number Diff line number Diff line change
Expand Up @@ -188,19 +188,16 @@ typedef struct packed
logic [1:0] mode;
} rv64_stvec_s;

typedef struct packed
{
logic [38:0] base;
} bp_stvec_s;
typedef logic [36:0] bp_stvec_s;

`define bp_stvec_width ($bits(bp_stvec_s))

`define compress_stvec_s(data_cast_mp) \
'{base: data_cast_mp.base[0+:39]}
bp_stvec_s'(data_cast_mp.base[0+:37])

`define decompress_stvec_s(data_comp_mp) \
'{base : {22'h0, data_comp_mp.base} \
,mode: 2'b00 \
'{base : $signed(data_comp_mp) \
,mode: 2'b00 \
}

typedef struct packed
Expand Down Expand Up @@ -239,16 +236,12 @@ typedef logic [63:0] bp_sscratch_s;
64'(data_comp_mp)

typedef logic [63:0] rv64_sepc_s;
typedef struct packed
{
logic sgn;
logic [39:0] addr;
} bp_sepc_s;
typedef logic [38:0] bp_sepc_s;

`define bp_sepc_width ($bits(bp_sepc_s))

`define compress_sepc_s(data_cast_mp) \
'{sgn: data_cast_mp[39], addr: data_cast_mp[0+:40]}
bp_sepc_s'(data_cast_mp[0+:39])

`define decompress_sepc_s(data_comp_mp) \
64'($signed(data_comp_mp))
Expand Down Expand Up @@ -276,14 +269,10 @@ typedef struct packed
}

typedef logic [63:0] rv64_stval_s;
typedef struct packed
{
logic sgn;
logic [39:0] addr;
} bp_stval_s;
typedef logic [39:0] bp_stval_s;

`define compress_stval_s(data_cast_mp) \
'{sgn: data_cast_mp[39], addr: data_cast_mp[0+:40]}
bp_stval_s'(data_cast_mp[0+:40])

`define decompress_stval_s(data_comp_mp) \
64'($signed(data_comp_mp))
Expand Down Expand Up @@ -599,19 +588,16 @@ typedef struct packed
logic [1:0] mode;
} rv64_mtvec_s;

typedef struct packed
{
logic [38:0] base;
} bp_mtvec_s;
typedef logic [36:0] bp_mtvec_s;

`define bp_mtvec_width ($bits(bp_mtvec_s))

`define compress_mtvec_s(data_cast_mp) \
'{base: data_cast_mp.base[0+:39]}
bp_mtvec_s'(data_cast_mp.base[0+:37])

`define decompress_mtvec_s(data_comp_mp) \
'{base : {22'h0, data_comp_mp.base} \
,mode: 2'b00 \
'{base : $signed(data_comp_mp) \
,mode: 2'b00 \
}

typedef struct packed
Expand Down Expand Up @@ -712,27 +698,19 @@ typedef struct packed
}

typedef logic [63:0] rv64_mtval_s;
typedef struct packed
{
logic sgn;
logic [39:0] addr;
} bp_mtval_s;
typedef logic [39:0] bp_mtval_s;

`define compress_mtval_s(data_cast_mp) \
'{sgn: data_cast_mp[39], addr: data_cast_mp[0+:40]}
bp_mtval_s'(data_cast_mp[0+:40])

`define decompress_mtval_s(data_comp_mp) \
64'($signed(data_comp_mp))

typedef logic [63:0] rv64_mepc_s;
typedef struct packed
{
logic sgn;
logic [39:0] addr;
} bp_mepc_s;
typedef logic [38:0] bp_mepc_s;

`define compress_mepc_s(data_cast_mp) \
'{sgn: data_cast_mp[39], addr: data_cast_mp[0+:40]}
bp_mepc_s'(data_cast_mp[0+:39])

`define decompress_mepc_s(data_comp_mp) \
64'($signed(data_comp_mp))
Expand Down Expand Up @@ -990,15 +968,10 @@ typedef struct packed
}

typedef logic [63:0] rv64_dpc_s;

typedef struct packed
{
logic sgn;
logic [39:0] addr;
} bp_dpc_s;
typedef logic [38:0] bp_dpc_s;

`define compress_dpc_s(data_cast_mp) \
'{sgn: data_cast_mp[39], addr: data_cast_mp[0+:40]}
bp_dpc_s'(data_cast_mp[0+:39])

`define decompress_dpc_s(data_comp_mp) \
64'($signed(data_comp_mp))
Expand Down

0 comments on commit b50a673

Please sign in to comment.