aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-05-19 05:36:56 +0200
committerTristan Gingold <tgingold@free.fr>2020-05-19 06:09:12 +0200
commitb2354de2756c4b51acebcbf90df1c81069d0c7b7 (patch)
treeecb7cbc3b727fbf8ef63963eaf50c7f7112a3ddc
parent88a57f9390b638db0626d185773a50376a256c99 (diff)
downloadghdl-b2354de2756c4b51acebcbf90df1c81069d0c7b7.tar.gz
ghdl-b2354de2756c4b51acebcbf90df1c81069d0c7b7.tar.bz2
ghdl-b2354de2756c4b51acebcbf90df1c81069d0c7b7.zip
vhdl-nodes: Rename and move shift/rotate predefined functions. Fix #1325
-rw-r--r--python/libghdl/thin/vhdl/nodes.py74
-rw-r--r--src/synth/synth-oper.adb12
-rw-r--r--src/synth/synth-static_oper.adb11
-rw-r--r--src/vhdl/vhdl-ieee-numeric.adb16
-rw-r--r--src/vhdl/vhdl-nodes.ads18
5 files changed, 64 insertions, 67 deletions
diff --git a/python/libghdl/thin/vhdl/nodes.py b/python/libghdl/thin/vhdl/nodes.py
index dd79111ce..d40f1560e 100644
--- a/python/libghdl/thin/vhdl/nodes.py
+++ b/python/libghdl/thin/vhdl/nodes.py
@@ -1318,43 +1318,43 @@ class Iir_Predefined:
Ieee_Numeric_Std_Sla_Sgn_Int = 340
Ieee_Numeric_Std_Sra_Uns_Int = 341
Ieee_Numeric_Std_Sra_Sgn_Int = 342
- Ieee_Numeric_Std_Rol_Uns_Nat = 343
- Ieee_Numeric_Std_Ror_Uns_Nat = 344
- Ieee_Numeric_Std_Rol_Sgn_Nat = 345
- Ieee_Numeric_Std_Ror_Sgn_Nat = 346
- Ieee_Numeric_Std_And_Uns_Uns = 347
- Ieee_Numeric_Std_And_Sgn_Sgn = 348
- Ieee_Numeric_Std_Or_Uns_Uns = 349
- Ieee_Numeric_Std_Or_Sgn_Sgn = 350
- Ieee_Numeric_Std_Nand_Uns_Uns = 351
- Ieee_Numeric_Std_Nand_Sgn_Sgn = 352
- Ieee_Numeric_Std_Nor_Uns_Uns = 353
- Ieee_Numeric_Std_Nor_Sgn_Sgn = 354
- Ieee_Numeric_Std_Xor_Uns_Uns = 355
- Ieee_Numeric_Std_Xor_Sgn_Sgn = 356
- Ieee_Numeric_Std_Xnor_Uns_Uns = 357
- Ieee_Numeric_Std_Xnor_Sgn_Sgn = 358
- Ieee_Numeric_Std_Not_Uns = 359
- Ieee_Numeric_Std_Not_Sgn = 360
- Ieee_Numeric_Std_Abs_Sgn = 361
- Ieee_Numeric_Std_Neg_Uns = 362
- Ieee_Numeric_Std_Neg_Sgn = 363
- Ieee_Numeric_Std_Min_Uns_Uns = 364
- Ieee_Numeric_Std_Min_Uns_Nat = 365
- Ieee_Numeric_Std_Min_Nat_Uns = 366
- Ieee_Numeric_Std_Min_Sgn_Sgn = 367
- Ieee_Numeric_Std_Min_Sgn_Int = 368
- Ieee_Numeric_Std_Min_Int_Sgn = 369
- Ieee_Numeric_Std_Max_Uns_Uns = 370
- Ieee_Numeric_Std_Max_Uns_Nat = 371
- Ieee_Numeric_Std_Max_Nat_Uns = 372
- Ieee_Numeric_Std_Max_Sgn_Sgn = 373
- Ieee_Numeric_Std_Max_Sgn_Int = 374
- Ieee_Numeric_Std_Max_Int_Sgn = 375
- Ieee_Numeric_Std_Shl_Uns_Nat = 376
- Ieee_Numeric_Std_Shr_Uns_Nat = 377
- Ieee_Numeric_Std_Shl_Sgn_Nat = 378
- Ieee_Numeric_Std_Shr_Sgn_Nat = 379
+ Ieee_Numeric_Std_And_Uns_Uns = 343
+ Ieee_Numeric_Std_And_Sgn_Sgn = 344
+ Ieee_Numeric_Std_Or_Uns_Uns = 345
+ Ieee_Numeric_Std_Or_Sgn_Sgn = 346
+ Ieee_Numeric_Std_Nand_Uns_Uns = 347
+ Ieee_Numeric_Std_Nand_Sgn_Sgn = 348
+ Ieee_Numeric_Std_Nor_Uns_Uns = 349
+ Ieee_Numeric_Std_Nor_Sgn_Sgn = 350
+ Ieee_Numeric_Std_Xor_Uns_Uns = 351
+ Ieee_Numeric_Std_Xor_Sgn_Sgn = 352
+ Ieee_Numeric_Std_Xnor_Uns_Uns = 353
+ Ieee_Numeric_Std_Xnor_Sgn_Sgn = 354
+ Ieee_Numeric_Std_Not_Uns = 355
+ Ieee_Numeric_Std_Not_Sgn = 356
+ Ieee_Numeric_Std_Abs_Sgn = 357
+ Ieee_Numeric_Std_Neg_Uns = 358
+ Ieee_Numeric_Std_Neg_Sgn = 359
+ Ieee_Numeric_Std_Min_Uns_Uns = 360
+ Ieee_Numeric_Std_Min_Uns_Nat = 361
+ Ieee_Numeric_Std_Min_Nat_Uns = 362
+ Ieee_Numeric_Std_Min_Sgn_Sgn = 363
+ Ieee_Numeric_Std_Min_Sgn_Int = 364
+ Ieee_Numeric_Std_Min_Int_Sgn = 365
+ Ieee_Numeric_Std_Max_Uns_Uns = 366
+ Ieee_Numeric_Std_Max_Uns_Nat = 367
+ Ieee_Numeric_Std_Max_Nat_Uns = 368
+ Ieee_Numeric_Std_Max_Sgn_Sgn = 369
+ Ieee_Numeric_Std_Max_Sgn_Int = 370
+ Ieee_Numeric_Std_Max_Int_Sgn = 371
+ Ieee_Numeric_Std_Shf_Left_Uns_Nat = 372
+ Ieee_Numeric_Std_Shf_Right_Uns_Nat = 373
+ Ieee_Numeric_Std_Shf_Left_Sgn_Nat = 374
+ Ieee_Numeric_Std_Shf_Right_Sgn_Nat = 375
+ Ieee_Numeric_Std_Rot_Left_Uns_Nat = 376
+ Ieee_Numeric_Std_Rot_Right_Uns_Nat = 377
+ Ieee_Numeric_Std_Rot_Left_Sgn_Nat = 378
+ Ieee_Numeric_Std_Rot_Right_Sgn_Nat = 379
Ieee_Numeric_Std_Match_Log = 380
Ieee_Numeric_Std_Match_Uns = 381
Ieee_Numeric_Std_Match_Sgn = 382
diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb
index c34ec4875..22e455b55 100644
--- a/src/synth/synth-oper.adb
+++ b/src/synth/synth-oper.adb
@@ -1638,16 +1638,16 @@ package body Synth.Oper is
W, Get_Location (Expr)),
Create_Vec_Type_By_Length (W, Logic_Type));
end;
- when Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat
- | Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat
+ | Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat =>
return Synth_Shift_Rotate (Ctxt, Id_Lsl, L, R, Expr);
- when Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat =>
return Synth_Shift_Rotate (Ctxt, Id_Lsr, L, R, Expr);
- when Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat =>
return Synth_Shift_Rotate (Ctxt, Id_Asr, L, R, Expr);
- when Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat =>
return Synth_Shift_Rotate (Ctxt, Id_Rol, L, R, Expr);
- when Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat =>
return Synth_Shift_Rotate (Ctxt, Id_Ror, L, R, Expr);
when Iir_Predefined_Ieee_Numeric_Std_Min_Uns_Uns =>
diff --git a/src/synth/synth-static_oper.adb b/src/synth/synth-static_oper.adb
index b2c56aa8d..ade651703 100644
--- a/src/synth/synth-static_oper.adb
+++ b/src/synth/synth-static_oper.adb
@@ -847,19 +847,16 @@ package body Synth.Static_Oper is
return Create_Memory_Discrete
(Eval_Signed_To_Integer (Get_Memtyp (Param1), Expr), Res_Typ);
- when Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat
+ | Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat =>
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
False, False);
- when Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat =>
- return Shift_Vec
- (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
- False, False);
- when Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat =>
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
True, False);
- when Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat =>
+ when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat =>
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
True, True);
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb
index 7be77ac8f..db368c380 100644
--- a/src/vhdl/vhdl-ieee-numeric.adb
+++ b/src/vhdl/vhdl-ieee-numeric.adb
@@ -494,20 +494,20 @@ package body Vhdl.Ieee.Numeric is
(others => Iir_Predefined_None)));
Shl_Patterns : constant Shift_Pattern_Type :=
- (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat,
- Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat);
+ (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat,
+ Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat);
Shr_Patterns : constant Shift_Pattern_Type :=
- (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat,
- Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat);
+ (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat,
+ Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat);
Rol_Patterns : constant Shift_Pattern_Type :=
- (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rol_Sgn_Nat,
- Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat);
+ (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Sgn_Nat,
+ Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat);
Ror_Patterns : constant Shift_Pattern_Type :=
- (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Ror_Sgn_Nat,
- Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat);
+ (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Sgn_Nat,
+ Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat);
Sll_Patterns : constant Shift_Pattern_Type :=
(Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Sll_Sgn_Int,
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 50ffbfcb0..bc37733d6 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -5642,11 +5642,6 @@ package Vhdl.Nodes is
Iir_Predefined_Ieee_Numeric_Std_Sra_Uns_Int,
Iir_Predefined_Ieee_Numeric_Std_Sra_Sgn_Int,
- Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Rol_Sgn_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Ror_Sgn_Nat,
-
Iir_Predefined_Ieee_Numeric_Std_And_Uns_Uns,
Iir_Predefined_Ieee_Numeric_Std_And_Sgn_Sgn,
@@ -5691,10 +5686,15 @@ package Vhdl.Nodes is
Iir_Predefined_Ieee_Numeric_Std_Max_Int_Sgn,
-- Shift and rotate functions.
- Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat,
- Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat,
+
+ Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Sgn_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Sgn_Nat,
-- Std_Match functions.
Iir_Predefined_Ieee_Numeric_Std_Match_Log,