* chore: run codespell on source/header files
Fixes most reported typos discovered by codespell (while trying to be
unopinionated about American vs. British English).
* chore: run codespell on build/readme files
1. Ensure PSW ILC is always accurate (for instructions that don't formally decode the instruction, such as many of the branch instructions). This was one of the root causes of inaccurate/problematic program interrupt (i.e. "Program Check") tracing, fixed in next commit.
2. Use new TXF TRAN/CONTRAN ... _IP macros for those instructions that don't formally decode the instruction (i.e. most all branch instructions for example). The trailing "_IP" in their name indicates that regs->ip is expected to be pointing AT the instruction and not past it (like most other instruction decoders do).
3. Convert SUCCESSFUL_BRANCH et al. macros into function calls and define new "SuccessfulBranch" et al. functions in cpu.c.
[skip travis]
Add additional PTT trace statements in a few places, cosmetic comment tweaks to a bunch of branch instructions, extensively document some important opcode.h macros.
[skip travis]
I can understand having specialized decoders for branch instructions that skips bumping the regs->ip instruction pointer (since it's unknown at that point whether the branch will be taken or not), but not bothering to properly update regs->psw.ilc does NOT make any sense and only serves to cause problems with attempts to correctly display on which instruction a program check happened to have occurred.
Update instruction comments with actual IBM formats, as well as in the new GENx370x390x900 macro argument (opcode.c column) too.
Some instruction functions moved the *follow* the OPTION_OPTINST optimized functions instead of preceding them (for easier parsing(*)).
That's pretty much it for right now.
More to come in future commits as this project progresses.
[skip travis]
-----------------
(*) I've written a custom tool to help me with this project and doing so makes it easier for my program to deal with (parse) Hercules code.
Add missing CONTRAN_INSTR_CHECK, delete some others, replace others w/TRAN_INSTR_CHECK
Fix some branch instrutions via new TRAN_SET_ADDRESSING_MODE_CHECK and TRAN_BRANCH_SET_MODE_CHECK macros
Fix MC (Monitor Call) constraint
Use new TRAN_MISC_INSTR_CHECK in a few places
[skip travis]
[skip travis]
Revert "3390 DASD CCW Command SNID (x'34') Correction for RESERVE/RELEASE"
This reverts commit 9fd1dfff4d.
Revert "(Oops!) I did accidentally change functionality! Sorry!"
This reverts commit cb24398570.
Revert "Clean up overall ARCH_DEP structure of hscmisc.c module:"
This reverts commit f99cae0938.
Revert "Suppress HHC00814I and HHC00809I for OSTAILOR VM"
This reverts commit 97ef4d5bce.
Revert "Fix comments to match current state of controversy"
This reverts commit 7aa3c4413a.
Revert "Revert "Fix minor bug in CDFTR/CXFTR instructions""
This reverts commit e4e60f37dc.
Revert "Fix minor bug in CDFTR/CXFTR instructions"
This reverts commit 0f382a7875.
Revert "Eliminate compiler warning."
This reverts commit a5ad6b0a22.
Revert "Add missing */ to facility 20 comment."
This reverts commit adfd31d280.
Revert "Update What's New [skip travis]"
This reverts commit 5b5cdf0249.
Revert "Fix z/VM guest arch switch bug identified in issue #295"
This reverts commit f5504fe407.
Revert "Update documentation. [skip travis]"
This reverts commit 8caa8b15d6.
Revert "Fix for IPL command without a LOADPARM (#296)"
This reverts commit 328e99a685.
Revert "(fix typo) [skip travis]"
This reverts commit 6665c1017a.
Revert "Update What's New and Release Notes web pages"
This reverts commit 21380cd537.
Revert "Cosmetic: remove change indicator comments"
This reverts commit 3ff73f53cb.
Revert "Cosmetic: DIAG = RS_a format."
This reverts commit 67bc1d46be.
Revert "Stop panel select watching logger pipe:"
This reverts commit bef8eb0012.
Revert "(missed one!) [skip travis]"
This reverts commit 017e4374b6.
Revert "Minor cosmetic inst format fixes"
This reverts commit c97e01a6e6.
Revert "Instruction decoders cleanup part 8: IBM formats:"
This reverts commit 977de05643.
Revert "CTCE v2 Circumventing VM/SP Problem and Minor Improvements"
This reverts commit 5080ee8059.
Revert "Fix incomplete network device group crash:"
This reverts commit 590623a729.
Revert "Workaround for VS2019 compiler bug:"
This reverts commit 3a94e280e9.
Revert "Documentation: clarify QETH statement "iface" parameter."
This reverts commit 216da217b6.
Revert "Disable DEBUG_FREESPACE build option:"
This reverts commit 68d91c0648.
Revert "Minor cosmetic + cosmetic typo fix"
This reverts commit e1cbea7326.
Revert "I/O interrupt tracing tweak:"
This reverts commit e004d298d6.
Revert "Cosmetic in preparation for next commit"
This reverts commit 456a0c4c95.
Revert "100% cosmetic: [skip travis]"
This reverts commit 5da6a86c89.
Revert "Cosmetic doc update to HERCLOGO readme [skip travis]"
This reverts commit 7efbcefe28.
Revert "Add dummy device to MSVC Windows build"
This reverts commit 91821019f2.
Revert "Cosmetic: reorg into alpha seq [skip travis]"
This reverts commit 382185ed78.
Revert "Chore: finalize dummy device skeleton"
This reverts commit 73a69e3d4c.
Revert "Fix : Updates to dummy device skeleton"
This reverts commit 9f4c91c352.
Revert "(cosmetic) [skip travis]"
This reverts commit 125c455cfb.
Revert "Instruction decoders cleanup part 7: delete unused IPRINT_FUNC"
This reverts commit fb6f3d5d97.
Revert "Instruction decoders cleanup part 7: delete unused decoders"
This reverts commit 9e8b0e1ca9.
Revert "Instruction decoders cleanup part 6: cosmetic:"
This reverts commit df8fd6e69a.
Revert "Fix: type in Makefile.am"
This reverts commit 73b3d56a31.
Revert "Updare Variuous anciliary files"
This reverts commit 49c3065a69.
Revert "Chore : tcpnje rewrite"
This reverts commit 011c66c778.
Revert "Add missing Vector Facility macros"
This reverts commit 515c428cb7.
Revert "Instruction decoders cleanup part 5: cosmetic:"
This reverts commit 94498258d5.
Revert "Instruction decoders cleanup part 4: fix RRD snafu:"
This reverts commit e899a610f0.
Revert "Instruction decoders cleanup parts 2 and 3:"
This reverts commit aa24c44b27.
Revert "Bug in SSF instruction decoder. Closes #287."
This reverts commit 2b6b899232.
Revert "100% cosmetic (comment tweaks only)"
This reverts commit c78a12e512.
Revert "Fix careless typo in RXXx_BC_DECODER (Sorry!)"
This reverts commit 8094e6506f.
Revert "(Oops!) decoders must be re-#included each time!"
This reverts commit 7089de5adc.
Revert "Instruction decoders cleanup part 1:"
This reverts commit c3e431bcf8.
Revert "Fix TCP/NJE clang warnings + Windows support"
This reverts commit a73daadd59.
Revert "Add TCP/NJE readme file"
This reverts commit fc1c87c86b.
Revert "Chore: Add TCP/NJE support - Experimental"
This reverts commit a3355dbcd1.
Revert "Document yet more Hercules related support groups"
This reverts commit bdf46c225e.
Revert "(yet more html doc tweaking)"
This reverts commit 7c29139e10.
Revert "Replace Yahoo URLs with Groups.IO URLs instead."
This reverts commit e0fb59a379.
Revert "Replace Yahoo URLs with Groups.IO URLs instead."
This reverts commit b75b31ed16.
Revert "Copyright 2020: only what's visible to the user"
This reverts commit c2d6f83184.
Revert "CTCE v2 Corrections and Improvements - Documentation Update"
This reverts commit 020e4a1545.
Revert "(update 4.3 progress)"
This reverts commit 1a1d40db4c.
Revert "Fix sockdev "bind lock" initialization bug:"
This reverts commit 99504d3c11.
Revert "Use set_lock_name to assign better device lock names"
This reverts commit 8018f7796a.
Revert "Tighter lock init/destroy validation"
This reverts commit 63797f60c6.
Revert "Track lock creation"
This reverts commit 39782c0b83.
Revert "Cosmetic removal of superfluous location argument"
This reverts commit 0cead3d18a.
Revert "Yet more cosmetic renames"
This reverts commit fbd4aeeb43.
Revert "Cosmetic struct field renames"
This reverts commit aba323706a.
Revert "Fix minor memory leak in destroy_lock"
This reverts commit 7fc2064c97.
Revert "Fix some minor compiler warnings:"
This reverts commit 9f70f79fdc.
Revert "CTCE v2 Corrections and Improvements - Documentation Update"
This reverts commit a575524d9b.
Revert "CTCE Corrections and Improvements"
This reverts commit d2921aa00c.
Revert "CTCE devices need dev->hnd->halt to always be called"
This reverts commit 8ac28edf9d.
Revert "Support for new DEVLIST and CTC DEBUG command options"
This reverts commit 5ce233e0af.
Revert "(yet another typo)"
This reverts commit 66b91d26a1.
Revert "(typo!)"
This reverts commit 4c4b9c0f30.
Revert "Define framework for new facilities."
This reverts commit ad640b125b.
Revert "New README to explain how to add a new Facility to Hercules"
This reverts commit 9bc2adeb1f.
Revert "Still trying to fix travis-ci build failures!"
This reverts commit e36d1a8f3e.
Revert "(cosmetic cleanup):"
This reverts commit 95b91e8032.
Revert "Update *nix autoconf files due to last few commits"
This reverts commit 28d4f4b0b3.
Revert "Various NetBSD/FreeBSD portability issues (#279):"
This reverts commit 56206efcfa.
Revert "Support perl being in a different place:"
This reverts commit 2f51035436.
Revert "Update documentation regarding ongoing development"
This reverts commit 57d0e0d869.
Revert "Fix minor message number typo"
This reverts commit 2e093718be.
Revert "Minor bootstrap crash handler tweak:"
This reverts commit bec283f0b3.
Revert "Restore watchdog support:"
This reverts commit 81957ddfef.
Revert "hthreads set/get thread name and lock name support"
This reverts commit f56bfb8352.
Revert "New '$test deadlock' testing command"
This reverts commit 6690b9207b.
Revert "Restore DIAG FF8 and FFC for testing purposes"
This reverts commit 002e0602dd.
Revert "Set sysblk.ipled flag on restart command too"
This reverts commit 866bda176e.
Revert "(minor html edit)"
This reverts commit caaa3dcbc0.
Revert "Update *nix autoconf files due to last few commits"
This reverts commit 23c7f6cf8d.
Revert "Treat NetBSD same as FreeBSD per github issue #279"
This reverts commit 2ff0c0d97c.
Revert "Fix another portability issues identified in github issue #279"
This reverts commit 51a24502d2.
Revert "Support for NetBSD 3 arguments pthread_setname_np"
This reverts commit edf7171bfb.
Revert "Fix some portability issues identified in github issue #279"
This reverts commit c740f710be.
Revert "Restore erroneously removed printer immediate CCW opcodes tables:"
This reverts commit 9f2c5606ff.
Revert "TRY TO FIX Travis.CI failure"
This reverts commit c67ac2ee50.
Revert "TRY TO FIX Travis.CI failure"
This reverts commit e5b477b34b.
Update instruction comments with actual IBM formats, as well as in the new GENx370x390x900 macro argument (opcode.c column) too.
Some instruction functions moved the *follow* the OPTION_OPTINST optimized functions instead of preceding them (for easier parsing(*)).
That's pretty much it for right now.
More to come in future commits as this project progresses.
-----------------
(*) I've written a custom tool to help me with this project and doing so makes it easier for my program to deal with (parse) Hercules code.
Load-and-Zero-Rightmost-Byte Facility:
LZRG LOAD AND ZERO RIGHTMOST BYTE (64)
LZRF LOAD AND ZERO RIGHTMOST BYTE (32)
LLZRGF LOAD LOGICAL AND ZERO RIGHTMOST BYTE (64 <- 32)
Load/Store-on-Condition Facility 2:
LOCHHI LOAD HALFWORD HIGH IMMEDIATE ON CONDITION (32 <- 16)
LOCHI LOAD HALFWORD IMMEDIATE ON CONDITION (32 <- 16)
LOCGHI LOAD HALFWORD IMMEDIATE ON CONDITION (64 <- 16)
LOCFHR LOAD HIGH ON CONDITION (32)
LOCFH LOAD HIGH ON CONDITION (32)
STOCFH STORE HIGH ON CONDITION
RNSBG, RISBG, ROSBG, RXSBG, RISBHG, RISBLG, RISBGN.
Replace 64 single bit at a time mask creation loop with 4 shifts (and a possible XOR)
(plus additional cosmetic changes by Fish)
Add missing test case for RISBGN in "rotate_then_xxx_selected_bits_long_reg" helper function when copying rotated bits to results.
Guard against incorrect invocation of "rotate_then_xxx_selected_bits_long_reg" by instruction implementation.
Issue a Machine Check Interrupt via SIGUSR1 or CRASH() if no signal handler is installed.
(with minor adjustments/tweaks by Fish)
The new ARCHLVL design now disables affected instructions whenever a given facility is not installed (or is purposely disabled) causing an immediate Program Check, so there's no longer any need for the individual instructions to also check too. This makes such instructions faster as they don't have to be constantly checking each time they're executed. It also eliminates host instruction and data cache pollution that otherwise results too from the constant unnecessary checking of the REGS facility bits, thereby making Hercules itself more efficient/faster.
* Multiple EVD Blocks Support Fix in service.c
Similar to the multiple MTO blocks within an EVD block
within the SCCB block of the SCLP instruction, can there
be multiple EVD blocks within the SCCB. The support for
this was missing but this has now been corrected.
* Addresses issues #22, #23, #24 and #25
Support for additional instructions backported
from Spinhawk 3.13.