resolving imports changing over
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 23 Apr 2021 14:13:58 +0000 (15:13 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 23 Apr 2021 14:13:58 +0000 (15:13 +0100)
38 files changed:
src/openpower/decoder/decode2execute1.py
src/openpower/decoder/formal/proof_decoder.py
src/openpower/decoder/formal/proof_decoder2.py
src/openpower/decoder/helpers.py
src/openpower/decoder/isa/caller.py
src/openpower/decoder/isa/mem.py
src/openpower/decoder/isa/radixmmu.py
src/openpower/decoder/isa/test_caller.py
src/openpower/decoder/isa/test_caller_radix.py
src/openpower/decoder/isa/test_caller_setvl.py
src/openpower/decoder/isa/test_caller_svp64.py
src/openpower/decoder/isa/test_caller_svp64_predication.py
src/openpower/decoder/power_decoder.py
src/openpower/decoder/power_decoder2.py
src/openpower/decoder/power_fields.py
src/openpower/decoder/power_fieldsn.py
src/openpower/decoder/power_pseudo.py
src/openpower/decoder/power_regspec_map.py
src/openpower/decoder/power_svp64.py
src/openpower/decoder/power_svp64_extra.py
src/openpower/decoder/power_svp64_prefix.py
src/openpower/decoder/power_svp64_rm.py
src/openpower/decoder/pseudo/lexer.py
src/openpower/decoder/pseudo/parser.py
src/openpower/decoder/selectable_int.py
src/openpower/decoder/test/test_decoder_gas.py
src/openpower/decoder/test/test_power_decoder.py
src/openpower/endian.py [new file with mode: 0644]
src/openpower/simulator/program.py
src/openpower/simulator/test_div_sim.py
src/openpower/simulator/test_helloworld_sim.py
src/openpower/simulator/test_mul_sim.py
src/openpower/simulator/test_shift_sim.py
src/openpower/simulator/test_sim.py
src/openpower/simulator/test_trap_sim.py
src/openpower/state.py
src/openpower/sv/trans/svp64.py
src/openpower/test/common.py [new file with mode: 0644]

index 6333dcdf87641405b68fc438761cf222e7755d34..0bb7c64195898c7a43cd4b7e1c8f7ced7676644c 100644 (file)
@@ -5,10 +5,10 @@ based on Anton Blanchard microwatt decode2.vhdl
 """
 from nmigen import Signal, Record
 from nmutil.iocontrol import RecordObject
-from soc.decoder.power_enums import (MicrOp, CryIn, Function,
+from openpower.decoder.power_enums import (MicrOp, CryIn, Function,
                                      SPRfull, SPRreduced, LDSTMode)
-from soc.consts import TT
-from soc.experiment.mem_types import LDSTException
+from openpower.consts import TT
+from openpower.exceptions import LDSTException
 
 
 class Data(Record):
index 5abd9182ecf6e42ad6035e1a521edcca732bfd36..ce19a4265d6422b9fe5f09bafaa6bfde294422e6 100644 (file)
@@ -2,12 +2,12 @@ from nmigen import Module, Signal, Elaboratable, Cat
 from nmigen.asserts import Assert, AnyConst, Assume
 from nmutil.formaltest import FHDLTestCase
 
-from soc.decoder.power_decoder import create_pdecode, PowerOp
-from soc.decoder.power_enums import (In1Sel, In2Sel, In3Sel,
+from openpower.decoder.power_decoder import create_pdecode, PowerOp
+from openpower.decoder.power_enums import (In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, Form, Function,
                                      LdstLen, CryIn,
                                      MicrOp, SPR, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2,
+from openpower.decoder.power_decoder2 import (PowerDecode2,
                                         Decode2ToExecute1Type)
 import unittest
 import pdb
index b7ac61f708ff3bfab70150e7a422b9366d710b8e..d20c28f1c3225fdebbd23eb2f5317ea6120995e8 100644 (file)
@@ -2,11 +2,11 @@ from nmigen import Module, Signal, Elaboratable, Cat, Repl
 from nmigen.asserts import Assert, AnyConst
 from nmutil.formaltest import FHDLTestCase
 
-from soc.decoder.power_decoder import create_pdecode, PowerOp
-from soc.decoder.power_enums import (In1Sel, In2Sel, In3Sel,
+from openpower.decoder.power_decoder import create_pdecode, PowerOp
+from openpower.decoder.power_enums import (In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, Form,
                                      MicrOp, SPR)
-from soc.decoder.power_decoder2 import (PowerDecode2,
+from openpower.decoder.power_decoder2 import (PowerDecode2,
                                         Decode2ToExecute1Type)
 import unittest
 
index 6f63cc3d363596c72290123719cacdc8c5d94862..c8d0044d68caadb73e781d603fcc260bf5bb99f9 100644 (file)
@@ -1,10 +1,10 @@
 import unittest
-from soc.decoder.selectable_int import SelectableInt, onebit
+from openpower.decoder.selectable_int import SelectableInt, onebit
 from nmutil.divmod import trunc_divs, trunc_rems
 from operator import floordiv, mod
-from soc.decoder.selectable_int import selectltu as ltu
-from soc.decoder.selectable_int import selectgtu as gtu
-from soc.decoder.selectable_int import check_extsign
+from openpower.decoder.selectable_int import selectltu as ltu
+from openpower.decoder.selectable_int import selectgtu as gtu
+from openpower.decoder.selectable_int import check_extsign
 
 trunc_div = floordiv
 trunc_rem = mod
@@ -25,6 +25,7 @@ def exts(value, bits):
 def EXTS(value):
     """ extends sign bit out from current MSB to all 256 bits
     """
+    print ("EXTS", value, type(value))
     assert isinstance(value, SelectableInt)
     return SelectableInt(exts(value.value, value.bits) & ((1 << 256)-1), 256)
 
index 315db251fa97445244aac839fb330c1dc2ca78dc..2f9dfa8746625f74fccaf9cd8a86f5503837009d 100644 (file)
@@ -16,24 +16,24 @@ related bugs:
 from nmigen.back.pysim import Settle
 from functools import wraps
 from copy import copy
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
                                         selectconcat)
-from soc.decoder.power_enums import (spr_dict, spr_byname, XER_bits,
+from openpower.decoder.power_enums import (spr_dict, spr_byname, XER_bits,
                                      insns, MicrOp, In1Sel, In2Sel, In3Sel,
                                      OutSel, CROutSel,
                                      SVP64RMMode, SVP64PredMode,
                                      SVP64PredInt, SVP64PredCR)
 
-from soc.decoder.power_enums import SVPtype
+from openpower.decoder.power_enums import SVPtype
 
-from soc.decoder.helpers import exts, gtu, ltu, undefined
-from soc.consts import PIb, MSRb  # big-endian (PowerISA versions)
-from soc.consts import SVP64CROffs
-from soc.decoder.power_svp64 import SVP64RM, decode_extra
+from openpower.decoder.helpers import exts, gtu, ltu, undefined
+from openpower.consts import PIb, MSRb  # big-endian (PowerISA versions)
+from openpower.consts import SVP64CROffs
+from openpower.decoder.power_svp64 import SVP64RM, decode_extra
 
-from soc.decoder.isa.radixmmu import RADIX
-from soc.decoder.isa.mem import Mem, swap_order
+from openpower.decoder.isa.radixmmu import RADIX
+from openpower.decoder.isa.mem import Mem, swap_order
 
 from collections import namedtuple
 import math
index 15df1cbd9cb4d3b440df64b75ec111f16d6458a9..c92d70adcb4f0891ba4cbeaeb215326675e75316 100644 (file)
@@ -13,10 +13,10 @@ related bugs:
 """
 
 from copy import copy
-from soc.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
+from openpower.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
                                         selectconcat)
 
-from soc.decoder.helpers import exts, gtu, ltu, undefined
+from openpower.decoder.helpers import exts, gtu, ltu, undefined
 import math
 import sys
 
index bd814457282247146cd313bac888009513ef3338..04fb775daa2da2eb39e9f52f1303f783e007049c 100644 (file)
@@ -15,11 +15,11 @@ related bugs:
 
 #from nmigen.back.pysim import Settle
 from copy import copy
-from soc.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
+from openpower.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
                                         selectconcat)
-from soc.decoder.helpers import exts, gtu, ltu, undefined
-from soc.decoder.isa.mem import Mem
-from soc.consts import MSRb  # big-endian (PowerISA versions)
+from openpower.decoder.helpers import exts, gtu, ltu, undefined
+from openpower.decoder.isa.mem import Mem
+from openpower.consts import MSRb  # big-endian (PowerISA versions)
 
 import math
 import sys
index 77b54c7c95b5a84e38ff3b0948fbcdb7d8ef9966..00856352cef7f93b49c11f34264c3c162a8b5e37 100644 (file)
@@ -2,14 +2,14 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.isa.caller import ISACaller
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.decoder.isa.caller import ISACaller, inject
-from soc.decoder.selectable_int import SelectableInt
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.isa.all import ISA
+from openpower.decoder.isa.caller import ISACaller
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.decoder.isa.caller import ISACaller, inject
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.isa.all import ISA
 
 
 class Register:
index 26c813d0e2ba80957da334a925808ee570c478ae..d5fe3ef16942d6f1b18144b15dd56b352865f575 100644 (file)
@@ -2,15 +2,15 @@ from nmigen import Module, Signal
 #from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.isa.caller import ISACaller
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.decoder.isa.caller import ISACaller, inject, RADIX
-from soc.decoder.selectable_int import SelectableInt
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.isa.all import ISA
-from soc.decoder.isa.test_caller import run_tst
+from openpower.decoder.isa.caller import ISACaller
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.decoder.isa.caller import ISACaller, inject, RADIX
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.isa.all import ISA
+from openpower.decoder.isa.test_caller import run_tst
 
 from copy import deepcopy
 
index ad7991f18febae289809c53402f6d04841537fc6..0a66dfeb6ca969ed17bbf1d9bbc9abe890fc0f40 100644 (file)
@@ -2,17 +2,17 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.isa.caller import ISACaller
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.decoder.isa.caller import ISACaller, SVP64State
-from soc.decoder.selectable_int import SelectableInt
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.isa.all import ISA
-from soc.decoder.isa.test_caller import Register, run_tst
-from soc.sv.trans.svp64 import SVP64Asm
-from soc.consts import SVP64CROffs
+from openpower.decoder.isa.caller import ISACaller
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.decoder.isa.caller import ISACaller, SVP64State
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.isa.all import ISA
+from openpower.decoder.isa.test_caller import Register, run_tst
+from openpower.sv.trans.svp64 import SVP64Asm
+from openpower.consts import SVP64CROffs
 from copy import deepcopy
 
 class DecoderTestCase(FHDLTestCase):
index 7cc04f403c0e0632de42440960fe221b333aaa42..05bc22bb61a077580f270cde53001cfc84298e6d 100644 (file)
@@ -2,17 +2,17 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.isa.caller import ISACaller
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.decoder.isa.caller import ISACaller, SVP64State
-from soc.decoder.selectable_int import SelectableInt
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.isa.all import ISA
-from soc.decoder.isa.test_caller import Register, run_tst
-from soc.sv.trans.svp64 import SVP64Asm
-from soc.consts import SVP64CROffs
+from openpower.decoder.isa.caller import ISACaller
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.decoder.isa.caller import ISACaller, SVP64State
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.isa.all import ISA
+from openpower.decoder.isa.test_caller import Register, run_tst
+from openpower.sv.trans.svp64 import SVP64Asm
+from openpower.consts import SVP64CROffs
 from copy import deepcopy
 
 class DecoderTestCase(FHDLTestCase):
index 20b7c278d2ba6760679df99fb97b0e81240e7ba6..49bd533e9fbbf8b3fd3afab25abf6ef95beaba2e 100644 (file)
@@ -2,17 +2,17 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.isa.caller import ISACaller
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.decoder.isa.caller import ISACaller, SVP64State
-from soc.decoder.selectable_int import SelectableInt
-from soc.decoder.orderedset import OrderedSet
-from soc.decoder.isa.all import ISA
-from soc.decoder.isa.test_caller import Register, run_tst
-from soc.sv.trans.svp64 import SVP64Asm
-from soc.consts import SVP64CROffs
+from openpower.decoder.isa.caller import ISACaller
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.decoder.isa.caller import ISACaller, SVP64State
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.decoder.orderedset import OrderedSet
+from openpower.decoder.isa.all import ISA
+from openpower.decoder.isa.test_caller import Register, run_tst
+from openpower.sv.trans.svp64 import SVP64Asm
+from openpower.consts import SVP64CROffs
 from copy import deepcopy
 
 class DecoderTestCase(FHDLTestCase):
index eb6df3cf18cdd95bad47dc4918d4055780ec57cf..9bfac94356b024b3bb774b82a8f67aa1d466c370 100644 (file)
@@ -90,16 +90,16 @@ import gc
 from collections import namedtuple
 from nmigen import Module, Elaboratable, Signal, Cat, Mux
 from nmigen.cli import rtlil
-from soc.decoder.power_enums import (Function, Form, MicrOp,
+from openpower.decoder.power_enums import (Function, Form, MicrOp,
                                      In1Sel, In2Sel, In3Sel, OutSel,
                                      SVEXTRA, SVEtype, SVPtype,  # Simple-V
                                      RC, LdstLen, LDSTMode, CryIn,
                                      single_bit_flags, CRInSel,
                                      CROutSel, get_signal_name,
                                      default_values, insns, asmidx)
-from soc.decoder.power_fields import DecodeFields
-from soc.decoder.power_fieldsn import SigDecode, SignalBitRange
-from soc.decoder.power_svp64 import SVP64RM
+from openpower.decoder.power_fields import DecodeFields
+from openpower.decoder.power_fieldsn import SigDecode, SignalBitRange
+from openpower.decoder.power_svp64 import SVP64RM
 
 # key data structure in which the POWER decoder is specified,
 # in a hierarchical fashion
index c0d523d680352d1aa782d45e43ebbec7321f0e45..a220a3e16b0284af8f6e9e11799019b6d2051b64 100644 (file)
@@ -10,36 +10,36 @@ from nmigen import Module, Elaboratable, Signal, Mux, Const, Cat, Repl, Record
 from nmigen.cli import rtlil
 from nmutil.util import sel
 
-from soc.regfile.regfiles import XERRegs
-
 from nmutil.picker import PriorityPicker
 from nmutil.iocontrol import RecordObject
 from nmutil.extend import exts
 
-from soc.experiment.mem_types import LDSTException
+from openpower.exceptions import LDSTException
 
-from soc.decoder.power_svp64_prefix import SVP64PrefixDecoder
-from soc.decoder.power_svp64_extra import SVP64CRExtra, SVP64RegExtra
-from soc.decoder.power_svp64_rm import SVP64RMModeDecode
-from soc.decoder.power_regspec_map import regspec_decode_read
-from soc.decoder.power_regspec_map import regspec_decode_write
-from soc.decoder.power_decoder import create_pdecode
-from soc.decoder.power_enums import (MicrOp, CryIn, Function,
+from openpower.decoder.power_svp64_prefix import SVP64PrefixDecoder
+from openpower.decoder.power_svp64_extra import SVP64CRExtra, SVP64RegExtra
+from openpower.decoder.power_svp64_rm import SVP64RMModeDecode
+from openpower.decoder.power_regspec_map import regspec_decode_read
+from openpower.decoder.power_regspec_map import regspec_decode_write
+from openpower.decoder.power_decoder import create_pdecode
+from openpower.decoder.power_enums import (MicrOp, CryIn, Function,
                                      CRInSel, CROutSel,
                                      LdstLen, In1Sel, In2Sel, In3Sel,
                                      OutSel, SPRfull, SPRreduced,
                                      RC, LDSTMode,
                                      SVEXTRA, SVEtype, SVPtype)
-from soc.decoder.decode2execute1 import (Decode2ToExecute1Type, Data,
+from openpower.decoder.decode2execute1 import (Decode2ToExecute1Type, Data,
                                          Decode2ToOperand)
-from soc.sv.svp64 import SVP64Rec
-from soc.consts import (MSR, SPEC, EXTRA2, EXTRA3, SVP64P, field,
+from openpower.sv.svp64 import SVP64Rec
+from openpower.consts import (MSR, SPEC, EXTRA2, EXTRA3, SVP64P, field,
                         SPEC_SIZE, SPECb, SPEC_AUG_SIZE, SVP64CROffs)
 
 from soc.regfile.regfiles import FastRegs
-from soc.consts import TT
-from soc.config.state import CoreState
+from openpower.consts import TT
+from openpower.state import CoreState
 from soc.regfile.util import spr_to_fast
+from soc.regfile.regfiles import XERRegs
+
 
 
 def decode_spr_num(spr):
index d0fe85cbce4a83f5f12d424b6e1ed78872e97f2c..9cc7d43699d35ecb10393382b38faec3c807056e 100644 (file)
@@ -1,5 +1,5 @@
 from collections import OrderedDict, namedtuple
-from soc.decoder.power_enums import find_wiki_file
+from openpower.decoder.power_enums import find_wiki_file
 
 
 class BitRange(OrderedDict):
index 852dd15b079cc88a1b555f71d216107ce2d9c7a1..e0a02bae0e40ce46136c4917da2b50c523fdddfb 100644 (file)
@@ -1,5 +1,5 @@
 from collections import OrderedDict
-from soc.decoder.power_fields import DecodeFields, BitRange
+from openpower.decoder.power_fields import DecodeFields, BitRange
 from nmigen import Module, Elaboratable, Signal, Cat
 from nmigen.cli import rtlil
 from copy import deepcopy
index 3e02cb78a37c313d42800a58eb410d57655d63b0..eb87b626e2162cd6b8f6ccd961658b27d6b7447d 100644 (file)
@@ -15,13 +15,13 @@ from ply import lex, yacc
 import astor
 import ast
 
-from soc.decoder.power_decoder import create_pdecode
+from openpower.decoder.power_decoder import create_pdecode
 from nmigen.back.pysim import Simulator, Delay
 from nmigen import Module, Signal
 
-from soc.decoder.pseudo.parser import GardenSnakeCompiler
-from soc.decoder.selectable_int import SelectableInt, selectconcat
-from soc.decoder.isa.caller import GPR, Mem
+from openpower.decoder.pseudo.parser import GardenSnakeCompiler
+from openpower.decoder.selectable_int import SelectableInt, selectconcat
+from openpower.decoder.isa.caller import GPR, Mem
 
 
 ####### Test code #######
@@ -256,7 +256,7 @@ def test():
         print("args", args)
         print("-->", " ".join(map(str, args)))
 
-    from soc.decoder.helpers import (EXTS64, EXTZ64, ROTL64, ROTL32, MASK,
+    from openpower.decoder.helpers import (EXTS64, EXTZ64, ROTL64, ROTL32, MASK,
                                      trunc_div, trunc_rem)
 
     d = {}
index 05ff4814e2504e3acbc5924b614031b460f8bd7c..0f5bce328248a18bd6f15b011f7f02d1e4d11ba2 100644 (file)
@@ -36,7 +36,7 @@ see https://libre-soc.org/3d_gpu/architecture/regfile/ section on regspecs
 """
 from nmigen import Const
 from soc.regfile.regfiles import XERRegs, FastRegs, StateRegs
-from soc.decoder.power_enums import CryIn
+from openpower.decoder.power_enums import CryIn
 
 
 def regspec_decode_read(e, regfile, name):
index 167053c9b13214e1fa1a2883a8213100ca321d52..3e3332eae9e75701e88e878c9e29664575aed5f5 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2021 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
 # Funded by NLnet http://nlnet.nl
 
-from soc.decoder.power_enums import get_csv, find_wiki_dir
+from openpower.decoder.power_enums import get_csv, find_wiki_dir
 import os
 
 # identifies register by type
index 02c0bfd5a87ca6a29c1ebaec3145734062597ce3..8a8a3f77bff1f66c4ecf587d01c2c164717e8003 100644 (file)
@@ -6,8 +6,8 @@ from nmigen.cli import rtlil
 from nmutil.util import sel
 
 
-from soc.decoder.power_enums import (SVEXTRA, SVEtype)
-from soc.consts import (SPEC, EXTRA2, EXTRA3, SVP64P, field,
+from openpower.decoder.power_enums import (SVEXTRA, SVEtype)
+from openpower.consts import (SPEC, EXTRA2, EXTRA3, SVP64P, field,
                         SPEC_SIZE, SPECb, SPEC_AUG_SIZE, SVP64CROffs)
 
 
index 13352ebf38ba2971d80cdf977824bb741309de41..f95d97fecc2235a0ef515621576ecada5889e5b5 100644 (file)
@@ -6,7 +6,7 @@ from nmigen import Module, Elaboratable, Signal, Mux, Const, Cat
 from nmigen.cli import rtlil
 from nmutil.util import sel
 
-from soc.consts import SVP64P
+from openpower.consts import SVP64P
 
 # SVP64 Prefix fields: see https://libre-soc.org/openpower/sv/svp64/
 # identifies if an instruction is a SVP64-encoded prefix, and extracts
index ac29159a914a5c121ce7d8100a2b33b468e173f0..261ed5b92806eb1e9f4a6e186994c1a64ce875a1 100644 (file)
@@ -17,10 +17,10 @@ https://libre-soc.org/openpower/sv/svp64/
 """
 
 from nmigen import Elaboratable, Module, Signal, Const
-from soc.decoder.power_enums import (SVP64RMMode, Function, SVPtype,
+from openpower.decoder.power_enums import (SVP64RMMode, Function, SVPtype,
                                     SVP64PredMode, SVP64sat)
-from soc.consts import EXTRA3, SVP64MODE
-from soc.sv.svp64 import SVP64Rec
+from openpower.consts import EXTRA3, SVP64MODE
+from openpower.sv.svp64 import SVP64Rec
 from nmutil.util import sel
 
 
index 43aab336f1e63978f2d0931ffc13472c465f1df0..b420798b17533118a8440e91c077b38f2b68180f 100644 (file)
@@ -10,7 +10,7 @@
 # Modifications for inclusion in PLY distribution
 from copy import copy
 from ply import lex
-from soc.decoder.selectable_int import SelectableInt
+from openpower.decoder.selectable_int import SelectableInt
 
 # I implemented INDENT / DEDENT generation as a post-processing filter
 
index 54b2635cf2890114469ba6baaf1cacfc0be7613b..0e671960b601e5700daab0780a6eb3f1340645c3 100644 (file)
@@ -13,9 +13,9 @@ from ply import lex, yacc
 import astor
 from copy import deepcopy
 
-from soc.decoder.power_decoder import create_pdecode
-from soc.decoder.pseudo.lexer import IndentLexer
-from soc.decoder.orderedset import OrderedSet
+from openpower.decoder.power_decoder import create_pdecode
+from openpower.decoder.pseudo.lexer import IndentLexer
+from openpower.decoder.orderedset import OrderedSet
 
 # I use the Python AST
 #from compiler import ast
index 152764ca08758f3922e991da1b400cee6e47c853..2afe50e67d5887e81ac8bde6307aa4a34d510c88 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 from copy import copy
-from soc.decoder.power_fields import BitRange
+from openpower.decoder.power_fields import BitRange
 from operator import (add, sub, mul, floordiv, truediv, mod, or_, and_, xor,
                       neg, inv, lshift, rshift)
 
index f65abface930bbe31a4001539f57f73d1fea899f..fdbf8a31b04b0cc5205a3f79ada188be528d1fbd 100644 (file)
@@ -6,14 +6,14 @@ from nmutil.sim_tmp_alternative import Simulator, Delay
 
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.gas import get_assembled_instruction
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.gas import get_assembled_instruction
 import random
 
 
index 0a18c77bbe329cb0f28ece7bc826af9084acfbe0..8ee9a5541c79dc4242d5f29ac9556c85b9c19c7d 100644 (file)
@@ -8,8 +8,8 @@ from nmutil.formaltest import FHDLTestCase
 from nmigen.cli import rtlil
 import os
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      CRInSel, CROutSel,
                                      OutSel, RC, LdstLen, CryIn,
diff --git a/src/openpower/endian.py b/src/openpower/endian.py
new file mode 100644 (file)
index 0000000..eb6e0c3
--- /dev/null
@@ -0,0 +1,5 @@
+global bigendian
+bigendian = 0
+
+def set_endian_mode(mode):
+    bigendian = mode
index c55a67d1d68d06deb320394da6c76ca8c5f31492..f289abe5e351f4100ddfd5bcd3da97b743710f2b 100644 (file)
@@ -15,7 +15,7 @@ import os
 import sys
 from io import BytesIO
 
-from soc.simulator.envcmds import cmds
+from openpower.simulator.envcmds import cmds
 
 filedir = os.path.dirname(os.path.realpath(__file__))
 memmap = os.path.join(filedir, "memmap")
index 171af5c1416e127c5376cfa98afb75599f820b90..394c1a968963c0dada7c94aae754f4ad55c8b5c1 100644 (file)
@@ -2,18 +2,18 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.simulator.test_sim import DecoderBase
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.simulator.test_sim import DecoderBase
 
 
 
index d11304378a1991c51d2168b585fd5de82e34f17b..85cfe4aa3c02be4e80a40d453e9cce06cd12d1ba 100644 (file)
@@ -2,19 +2,19 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.simulator.test_sim import DecoderBase
-from soc.config.endian import bigendian
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.simulator.test_sim import DecoderBase
+from openpower.endian import bigendian
 
 
 class HelloTestCases(FHDLTestCase):
index 6d251056aeb34041927ec1f7773935627e894382..d5fbc05c7700baa26b244caa59a9c7535832be83 100644 (file)
@@ -2,19 +2,19 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.simulator.test_sim import DecoderBase
-from soc.config.endian import bigendian
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.simulator.test_sim import DecoderBase
+from openpower.endian import bigendian
 
 
 
index e1642105e4cee51f3df366a1bd8c34b89031197c..bed9bf45f24cc3894479263c1bbd50744df10cf1 100644 (file)
@@ -2,19 +2,19 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.simulator.test_sim import DecoderBase
-from soc.config.endian import bigendian
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.simulator.test_sim import DecoderBase
+from openpower.endian import bigendian
 
 
 
index 4d586fa7808fd7fb8f23ce9551742feed3eb8213..a18b8bce1d595222c8d99d306f4110852058491c 100644 (file)
@@ -2,18 +2,18 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.config.endian import bigendian
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.endian import bigendian
 
 
 class AttnTestCase(FHDLTestCase):
index 1c79482639aa88c4511984ac217406693dc62b8e..b6c95803128e82f95282bb412328f8e53d1206a2 100644 (file)
@@ -2,19 +2,19 @@ from nmigen import Module, Signal
 from nmigen.back.pysim import Simulator, Delay, Settle
 from nmutil.formaltest import FHDLTestCase
 import unittest
-from soc.decoder.power_decoder import (create_pdecode)
-from soc.decoder.power_enums import (Function, MicrOp,
+from openpower.decoder.power_decoder import (create_pdecode)
+from openpower.decoder.power_enums import (Function, MicrOp,
                                      In1Sel, In2Sel, In3Sel,
                                      OutSel, RC, LdstLen, CryIn,
                                      single_bit_flags, Form, SPR,
                                      get_signal_name, get_csv)
-from soc.decoder.power_decoder2 import (PowerDecode2)
-from soc.simulator.program import Program
-from soc.simulator.qemu import run_program
-from soc.decoder.isa.all import ISA
-from soc.fu.test.common import TestCase
-from soc.simulator.test_sim import DecoderBase
-from soc.config.endian import bigendian
+from openpower.decoder.power_decoder2 import (PowerDecode2)
+from openpower.simulator.program import Program
+from openpower.simulator.qemu import run_program
+from openpower.decoder.isa.all import ISA
+from openpower.test.common import TestCase
+from openpower.simulator.test_sim import DecoderBase
+from openpower.endian import bigendian #XXX HACK!
 
 
 class TrapSimTestCases(FHDLTestCase):
index a3972ef1da9126cf0b74ba828c80944b6b95ac13..1bc972fbde409947830d39594006e3f122e9e637 100644 (file)
@@ -1,6 +1,6 @@
 from nmutil.iocontrol import RecordObject
 from nmigen import Signal
-from soc.sv.svstate import SVSTATERec
+from openpower.sv.svstate import SVSTATERec
 
 
 class CoreState(RecordObject):
index 5df66ce1678b70e088a8492c489fd7b353507d51..d9fb43acda384ddb5ee0e57ac1428d5c717b7529 100644 (file)
@@ -17,7 +17,7 @@ Bugtracker: https://bugs.libre-soc.org/show_bug.cgi?id=578
 import os, sys
 from collections import OrderedDict
 
-from soc.decoder.isa.caller import (SVP64PrefixFields, SV64P_MAJOR_SIZE,
+from openpower.decoder.isa.caller import (SVP64PrefixFields, SV64P_MAJOR_SIZE,
                                     SV64P_PID_SIZE, SVP64RMFields,
                                     SVP64RM_EXTRA2_SPEC_SIZE,
                                     SVP64RM_EXTRA3_SPEC_SIZE,
@@ -25,10 +25,10 @@ from soc.decoder.isa.caller import (SVP64PrefixFields, SV64P_MAJOR_SIZE,
                                     SVP64RM_MMODE_SIZE, SVP64RM_MASK_SIZE,
                                     SVP64RM_SUBVL_SIZE, SVP64RM_EWSRC_SIZE,
                                     SVP64RM_ELWIDTH_SIZE)
-from soc.decoder.pseudo.pagereader import ISA
-from soc.decoder.power_svp64 import SVP64RM, get_regtype, decode_extra
-from soc.decoder.selectable_int import SelectableInt
-from soc.consts import SVP64MODE
+from openpower.decoder.pseudo.pagereader import ISA
+from openpower.decoder.power_svp64 import SVP64RM, get_regtype, decode_extra
+from openpower.decoder.selectable_int import SelectableInt
+from openpower.consts import SVP64MODE
 
 
 # decode GPR into sv extra
diff --git a/src/openpower/test/common.py b/src/openpower/test/common.py
new file mode 100644 (file)
index 0000000..435cbc9
--- /dev/null
@@ -0,0 +1,138 @@
+"""
+Bugreports:
+* https://bugs.libre-soc.org/show_bug.cgi?id=361
+"""
+
+import inspect
+import functools
+import types
+
+
+# TODO: make this a util routine (somewhere)
+def mask_extend(x, nbits, repeat):
+    res = 0
+    extended = (1<<repeat)-1
+    for i in range(nbits):
+        if x & (1<<i):
+            res |= extended << (i*repeat)
+    return res
+
+
+class SkipCase(Exception):
+    """Raise this exception to skip a test case.
+
+    Usually you'd use one of the skip_case* decorators.
+
+    For use with TestAccumulatorBase
+    """
+
+
+def _id(obj):
+    """identity function"""
+    return obj
+
+
+def skip_case(reason):
+    """
+    Unconditionally skip a test case.
+
+    Use like:
+        @skip_case("my reason for skipping")
+        def case_abc(self):
+            ...
+    or:
+        @skip_case
+        def case_def(self):
+            ...
+
+    For use with TestAccumulatorBase
+    """
+    def decorator(item):
+        assert not isinstance(item, type), \
+            "can't use skip_case to decorate types"
+
+        @functools.wraps(item)
+        def wrapper(*args, **kwargs):
+            raise SkipCase(reason)
+        return wrapper
+    if isinstance(reason, types.FunctionType):
+        item = reason
+        reason = ""
+        return decorator(item)
+    return decorator
+
+
+def skip_case_if(condition, reason):
+    """
+    Conditionally skip a test case.
+
+    Use like:
+        @skip_case_if(should_i_skip(), "my reason for skipping")
+        def case_abc(self):
+            ...
+
+    For use with TestAccumulatorBase
+    """
+    if condition:
+        return skip_case(reason)
+    return _id
+
+
+class TestAccumulatorBase:
+
+    def __init__(self):
+        self.test_data = []
+        # automatically identifies anything starting with "case_" and
+        # runs it.  very similar to unittest auto-identification except
+        # we need a different system
+        for n, v in self.__class__.__dict__.items():
+            if n.startswith("case_") and callable(v):
+                try:
+                    v(self)
+                except SkipCase as e:
+                    # TODO(programmerjake): translate to final test sending
+                    # skip signal to unittest. for now, just print the skipped
+                    # reason and ignore
+                    print(f"SKIPPED({n}):", str(e))
+
+    def add_case(self, prog, initial_regs=None, initial_sprs=None,
+                 initial_cr=0, initial_msr=0,
+                 initial_mem=None,
+                 initial_svstate=0):
+
+        test_name = inspect.stack()[1][3]  # name of caller of this function
+        tc = TestCase(prog, test_name,
+                      regs=initial_regs, sprs=initial_sprs, cr=initial_cr,
+                      msr=initial_msr,
+                      mem=initial_mem,
+                      svstate=initial_svstate)
+
+        self.test_data.append(tc)
+
+
+class TestCase:
+    def __init__(self, program, name, regs=None, sprs=None, cr=0, mem=None,
+                 msr=0,
+                 do_sim=True,
+                 extra_break_addr=None,
+                 svstate=0):
+
+        self.program = program
+        self.name = name
+
+        if regs is None:
+            regs = [0] * 32
+        if sprs is None:
+            sprs = {}
+        if mem is None:
+            mem = {}
+        self.regs = regs
+        self.sprs = sprs
+        self.cr = cr
+        self.mem = mem
+        self.msr = msr
+        self.do_sim = do_sim
+        self.extra_break_addr = extra_break_addr
+        self.svstate = svstate
+
+