aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/libghdl/thin/vhdl/nodes.py170
-rw-r--r--src/vhdl/vhdl-ieee-numeric.adb20
-rw-r--r--src/vhdl/vhdl-nodes.ads7
3 files changed, 115 insertions, 82 deletions
diff --git a/python/libghdl/thin/vhdl/nodes.py b/python/libghdl/thin/vhdl/nodes.py
index 580c543c1..8c3a40530 100644
--- a/python/libghdl/thin/vhdl/nodes.py
+++ b/python/libghdl/thin/vhdl/nodes.py
@@ -1087,88 +1087,94 @@ class Iir_Predefined:
Ieee_Numeric_Std_Sub_Sgn_Sgn = 212
Ieee_Numeric_Std_Sub_Sgn_Int = 213
Ieee_Numeric_Std_Sub_Int_Sgn = 214
- Ieee_Numeric_Std_Gt_Uns_Uns = 215
- Ieee_Numeric_Std_Gt_Uns_Nat = 216
- Ieee_Numeric_Std_Gt_Nat_Uns = 217
- Ieee_Numeric_Std_Gt_Sgn_Sgn = 218
- Ieee_Numeric_Std_Gt_Sgn_Int = 219
- Ieee_Numeric_Std_Gt_Int_Sgn = 220
- Ieee_Numeric_Std_Lt_Uns_Uns = 221
- Ieee_Numeric_Std_Lt_Uns_Nat = 222
- Ieee_Numeric_Std_Lt_Nat_Uns = 223
- Ieee_Numeric_Std_Lt_Sgn_Sgn = 224
- Ieee_Numeric_Std_Lt_Sgn_Int = 225
- Ieee_Numeric_Std_Lt_Int_Sgn = 226
- Ieee_Numeric_Std_Le_Uns_Uns = 227
- Ieee_Numeric_Std_Le_Uns_Nat = 228
- Ieee_Numeric_Std_Le_Nat_Uns = 229
- Ieee_Numeric_Std_Le_Sgn_Sgn = 230
- Ieee_Numeric_Std_Le_Sgn_Int = 231
- Ieee_Numeric_Std_Le_Int_Sgn = 232
- Ieee_Numeric_Std_Ge_Uns_Uns = 233
- Ieee_Numeric_Std_Ge_Uns_Nat = 234
- Ieee_Numeric_Std_Ge_Nat_Uns = 235
- Ieee_Numeric_Std_Ge_Sgn_Sgn = 236
- Ieee_Numeric_Std_Ge_Sgn_Int = 237
- Ieee_Numeric_Std_Ge_Int_Sgn = 238
- Ieee_Numeric_Std_Eq_Uns_Uns = 239
- Ieee_Numeric_Std_Eq_Uns_Nat = 240
- Ieee_Numeric_Std_Eq_Nat_Uns = 241
- Ieee_Numeric_Std_Eq_Sgn_Sgn = 242
- Ieee_Numeric_Std_Eq_Sgn_Int = 243
- Ieee_Numeric_Std_Eq_Int_Sgn = 244
- Ieee_Numeric_Std_Ne_Uns_Uns = 245
- Ieee_Numeric_Std_Ne_Uns_Nat = 246
- Ieee_Numeric_Std_Ne_Nat_Uns = 247
- Ieee_Numeric_Std_Ne_Sgn_Sgn = 248
- Ieee_Numeric_Std_Ne_Sgn_Int = 249
- Ieee_Numeric_Std_Ne_Int_Sgn = 250
- Ieee_Numeric_Std_Not_Uns = 251
- Ieee_Numeric_Std_Not_Sgn = 252
- Ieee_Numeric_Std_And_Uns_Uns = 253
- Ieee_Numeric_Std_And_Sgn_Sgn = 254
- Ieee_Numeric_Std_Or_Uns_Uns = 255
- Ieee_Numeric_Std_Or_Sgn_Sgn = 256
- Ieee_Numeric_Std_Nand_Uns_Uns = 257
- Ieee_Numeric_Std_Nand_Sgn_Sgn = 258
- Ieee_Numeric_Std_Nor_Uns_Uns = 259
- Ieee_Numeric_Std_Nor_Sgn_Sgn = 260
- Ieee_Numeric_Std_Xor_Uns_Uns = 261
- Ieee_Numeric_Std_Xor_Sgn_Sgn = 262
- Ieee_Numeric_Std_Xnor_Uns_Uns = 263
- Ieee_Numeric_Std_Xnor_Sgn_Sgn = 264
- Ieee_Numeric_Std_Neg_Uns = 265
- Ieee_Numeric_Std_Neg_Sgn = 266
- Ieee_Numeric_Std_Match_Log = 267
- Ieee_Numeric_Std_Match_Uns = 268
- Ieee_Numeric_Std_Match_Sgn = 269
- Ieee_Numeric_Std_Match_Slv = 270
- Ieee_Numeric_Std_Match_Suv = 271
- Ieee_Math_Real_Ceil = 272
- Ieee_Math_Real_Log2 = 273
- Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 274
- Ieee_Std_Logic_Unsigned_Add_Slv_Int = 275
- Ieee_Std_Logic_Unsigned_Add_Int_Slv = 276
- Ieee_Std_Logic_Unsigned_Add_Slv_Sl = 277
- Ieee_Std_Logic_Unsigned_Add_Sl_Slv = 278
- Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 279
- Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 280
- Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 281
- Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 282
- Ieee_Std_Logic_Unsigned_Le_Slv_Int = 283
- Ieee_Std_Logic_Unsigned_Le_Int_Slv = 284
- Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 285
- Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 286
- Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 287
- Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 288
- Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 289
- Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 290
- Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 291
- Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 292
- Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 293
- Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 294
- Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 295
- Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 296
+ Ieee_Numeric_Std_Mul_Uns_Uns = 215
+ Ieee_Numeric_Std_Mul_Uns_Nat = 216
+ Ieee_Numeric_Std_Mul_Nat_Uns = 217
+ Ieee_Numeric_Std_Mul_Sgn_Sgn = 218
+ Ieee_Numeric_Std_Mul_Sgn_Int = 219
+ Ieee_Numeric_Std_Mul_Int_Sgn = 220
+ Ieee_Numeric_Std_Gt_Uns_Uns = 221
+ Ieee_Numeric_Std_Gt_Uns_Nat = 222
+ Ieee_Numeric_Std_Gt_Nat_Uns = 223
+ Ieee_Numeric_Std_Gt_Sgn_Sgn = 224
+ Ieee_Numeric_Std_Gt_Sgn_Int = 225
+ Ieee_Numeric_Std_Gt_Int_Sgn = 226
+ Ieee_Numeric_Std_Lt_Uns_Uns = 227
+ Ieee_Numeric_Std_Lt_Uns_Nat = 228
+ Ieee_Numeric_Std_Lt_Nat_Uns = 229
+ Ieee_Numeric_Std_Lt_Sgn_Sgn = 230
+ Ieee_Numeric_Std_Lt_Sgn_Int = 231
+ Ieee_Numeric_Std_Lt_Int_Sgn = 232
+ Ieee_Numeric_Std_Le_Uns_Uns = 233
+ Ieee_Numeric_Std_Le_Uns_Nat = 234
+ Ieee_Numeric_Std_Le_Nat_Uns = 235
+ Ieee_Numeric_Std_Le_Sgn_Sgn = 236
+ Ieee_Numeric_Std_Le_Sgn_Int = 237
+ Ieee_Numeric_Std_Le_Int_Sgn = 238
+ Ieee_Numeric_Std_Ge_Uns_Uns = 239
+ Ieee_Numeric_Std_Ge_Uns_Nat = 240
+ Ieee_Numeric_Std_Ge_Nat_Uns = 241
+ Ieee_Numeric_Std_Ge_Sgn_Sgn = 242
+ Ieee_Numeric_Std_Ge_Sgn_Int = 243
+ Ieee_Numeric_Std_Ge_Int_Sgn = 244
+ Ieee_Numeric_Std_Eq_Uns_Uns = 245
+ Ieee_Numeric_Std_Eq_Uns_Nat = 246
+ Ieee_Numeric_Std_Eq_Nat_Uns = 247
+ Ieee_Numeric_Std_Eq_Sgn_Sgn = 248
+ Ieee_Numeric_Std_Eq_Sgn_Int = 249
+ Ieee_Numeric_Std_Eq_Int_Sgn = 250
+ Ieee_Numeric_Std_Ne_Uns_Uns = 251
+ Ieee_Numeric_Std_Ne_Uns_Nat = 252
+ Ieee_Numeric_Std_Ne_Nat_Uns = 253
+ Ieee_Numeric_Std_Ne_Sgn_Sgn = 254
+ Ieee_Numeric_Std_Ne_Sgn_Int = 255
+ Ieee_Numeric_Std_Ne_Int_Sgn = 256
+ Ieee_Numeric_Std_Not_Uns = 257
+ Ieee_Numeric_Std_Not_Sgn = 258
+ Ieee_Numeric_Std_And_Uns_Uns = 259
+ Ieee_Numeric_Std_And_Sgn_Sgn = 260
+ Ieee_Numeric_Std_Or_Uns_Uns = 261
+ Ieee_Numeric_Std_Or_Sgn_Sgn = 262
+ Ieee_Numeric_Std_Nand_Uns_Uns = 263
+ Ieee_Numeric_Std_Nand_Sgn_Sgn = 264
+ Ieee_Numeric_Std_Nor_Uns_Uns = 265
+ Ieee_Numeric_Std_Nor_Sgn_Sgn = 266
+ Ieee_Numeric_Std_Xor_Uns_Uns = 267
+ Ieee_Numeric_Std_Xor_Sgn_Sgn = 268
+ Ieee_Numeric_Std_Xnor_Uns_Uns = 269
+ Ieee_Numeric_Std_Xnor_Sgn_Sgn = 270
+ Ieee_Numeric_Std_Neg_Uns = 271
+ Ieee_Numeric_Std_Neg_Sgn = 272
+ Ieee_Numeric_Std_Match_Log = 273
+ Ieee_Numeric_Std_Match_Uns = 274
+ Ieee_Numeric_Std_Match_Sgn = 275
+ Ieee_Numeric_Std_Match_Slv = 276
+ Ieee_Numeric_Std_Match_Suv = 277
+ Ieee_Math_Real_Ceil = 278
+ Ieee_Math_Real_Log2 = 279
+ Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 280
+ Ieee_Std_Logic_Unsigned_Add_Slv_Int = 281
+ Ieee_Std_Logic_Unsigned_Add_Int_Slv = 282
+ Ieee_Std_Logic_Unsigned_Add_Slv_Sl = 283
+ Ieee_Std_Logic_Unsigned_Add_Sl_Slv = 284
+ Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 285
+ Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 286
+ Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 287
+ Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 288
+ Ieee_Std_Logic_Unsigned_Le_Slv_Int = 289
+ Ieee_Std_Logic_Unsigned_Le_Int_Slv = 290
+ Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 291
+ Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 292
+ Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 293
+ Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 294
+ Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 295
+ Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 296
+ Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 297
+ Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 298
+ Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 299
+ Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 300
+ Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 301
+ Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 302
Get_Kind = libghdl.vhdl__nodes__get_kind
Get_Location = libghdl.vhdl__nodes__get_location
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb
index cf0f7db26..4d5c0d5e3 100644
--- a/src/vhdl/vhdl-ieee-numeric.adb
+++ b/src/vhdl/vhdl-ieee-numeric.adb
@@ -73,6 +73,24 @@ package body Vhdl.Ieee.Numeric is
(others =>
(others => Iir_Predefined_None)));
+ Mul_Patterns : constant Binary_Pattern_Type :=
+ (Pkg_Std =>
+ (Type_Unsigned =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Uns,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Nat,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Nat_Uns,
+ Arg_Vect_Log => Iir_Predefined_None,
+ Arg_Log_Vect => Iir_Predefined_None),
+ Type_Signed =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Sgn,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Int,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Int_Sgn,
+ Arg_Vect_Log => Iir_Predefined_None,
+ Arg_Log_Vect => Iir_Predefined_None)),
+ Pkg_Bit =>
+ (others =>
+ (others => Iir_Predefined_None)));
+
Eq_Patterns : constant Binary_Pattern_Type :=
(Pkg_Std =>
(Type_Unsigned =>
@@ -533,6 +551,8 @@ package body Vhdl.Ieee.Numeric is
Handle_Binary (Add_Patterns);
when Name_Op_Minus =>
Handle_Binary (Sub_Patterns);
+ when Name_Op_Mul =>
+ Handle_Binary (Mul_Patterns);
when Name_Op_Equality =>
Handle_Binary (Eq_Patterns);
when Name_Op_Inequality =>
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 64eea3a3c..93407a5df 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -4943,6 +4943,13 @@ package Vhdl.Nodes is
Iir_Predefined_Ieee_Numeric_Std_Sub_Sgn_Int,
Iir_Predefined_Ieee_Numeric_Std_Sub_Int_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Mul_Int_Sgn,
+
Iir_Predefined_Ieee_Numeric_Std_Gt_Uns_Uns,
Iir_Predefined_Ieee_Numeric_Std_Gt_Uns_Nat,
Iir_Predefined_Ieee_Numeric_Std_Gt_Nat_Uns,