Convert to Binary - counterparts of the already implemented Convert
to Decimal (CVD*) instructions.
Example from the Principles of Operation: 25594C becomes 63FA.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 1 +
target/s390x/insn-data.def | 4 +++
target/s390x
In a few places translate.c contains non-breaking spaces (0xc2 0xa0)
instead of regular ones (0x20):
7c 7c c2 a0 63 63
7c 7c 2063 63
| |c c
This confuses some text editors.
Signed-off-by: Pavel Zbitskiy
Reviewed-by: Thomas Huth
Reviewed-by: David Hildenbrand
---
target
Changes since v4:
* Simplified alignment checks by using tcg_gen_qemu_ld_i64 and
MO_ALIGN*.
Pavel Zbitskiy (3):
target/s390x: use regular spaces in translate.c
target/s390x: exception on non-aligned LPSW(E)
target/s390x: implement CVB, CVBY and CVBG
target/s390x/helper.h | 1
Both LPSW and LPSWE should raise a specification exception when their
operand is not doubleword aligned.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/translate.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target/s390x/translate.c b/target/s390x/translate.c
index
Convert to Binary - counterparts of the already implemented Convert
to Decimal (CVD*) instructions.
Example from the Principles of Operation: 25594C becomes 63FA.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 1 +
target/s390x/insn-data.def | 4 +++
target/s390x
In a few places translate.c contains non-breaking spaces (0xc2 0xa0)
instead of regular ones (0x20):
7c 7c c2 a0 63 63
7c 7c 2063 63
| |c c
This confuses some text editors.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/translate.c | 4 ++--
1 file changed, 2 insertions
t this is too late -
specification exception should be recognized before memory accesses
take place.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 1 +
target/s390x/mem_helper.c | 19 ---
target/s390x/translate.c | 8
3 files changed, 21 insertions(+)
Changes since v3:
* Patches 1-6 were accepted, thanks!
* Use in1_la2 in op_cvb().
* Free a temp in op_cvb().
* Make ra const in helper_cvb().
* Use wrap_address() in helper_cvb().
* Add a minor formatting patch.
* Add LPSW(E) alignment check.
Pavel Zbitskiy (3):
target/s390x: use regular spaces
loop condition should be > and not >=.
If len_src is 1, then we should flip the 1st byte and pack the 2nd.
Since len_src is already decremented before the loop, the first
condition should be >=, and not >.
Likewise for len_src == 2 and the second condition.
Signed-off-by: Pavel Zbitskiy
Suppose psw.mask=0x8000, cc=2, r1=0 and we do "ipm 1".
This command must touch only bits 32-39, so the expected output
is r1=0x2000. However, currently qemu yields r1=0x20008000,
because irrelevant parts of PSW leak into r1 during program mask
transfer.
Signed-off
Convert to Binary - counterparts of the already implemented Convert
to Decimal (CVD*) instructions.
Example from the Principles of Operation: 25594C becomes 63FA.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 1 +
target/s390x/insn-data.def | 4 +++
target/s390x
trailing bits that must
be 0. For FC these numbers are:
FC=0 (word, 4 bytes):2
FC=1 (double word, 8 bytes): 3
FC=2 (quad word, 16 bytes): 4
For SC these numbers correspond to the size:
SC=0: 0
SC=1: 1
SC=2: 2
SC=3: 3
SC=4: 4
Signed-off-by: Pavel Zbitskiy
31-bit addressing modes.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/insn-data.def | 3 +++
target/s390x/translate.c | 55 +-
2 files changed, 51 insertions(+), 7 deletions(-)
diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def
index
.
* Clarified PACK commit message.
* Do not use LowCore for CONFIG_USER_ONLY.
* Reduce duplication in CVB code.
Pavel Zbitskiy (7):
tests/tcg: add a simple s390x test
target/s390x: add BAL and BALR instructions
target/s390x: fix CSST decoding and runtime alignment check
target/s390x: fix IPM
Improves "b213c9f5: target/s390x: Implement TRTR" by introducing the
intermediate functions, which are compatible with dx_helper type.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/mem_helper.c | 16 +++
tests/tcg/s390x/Makefile.target | 2 ++
tests/tcg/s390x/
Copied from alpha.
Signed-off-by: Pavel Zbitskiy
---
MAINTAINERS | 1 +
tests/tcg/s390x/Makefile.target | 3 +++
tests/tcg/s390x/hello-s390x.c | 7 +++
3 files changed, 11 insertions(+)
create mode 100644 tests/tcg/s390x/Makefile.target
create mode 100644 tests/tcg
Convert to Binary - counterparts of the already implemented Convert
to Decimal (CVD*) instructions.
Example from the Principles of Operation: 25594C becomes 63FA.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 1 +
target/s390x/insn-data.def | 4 +++
target/s390x
Improves "b213c9f5: target/s390x: Implement TRTR" by introducing the
intermediate functions, which are compatible with dx_helper type.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/mem_helper.c | 16 +++
tests/tcg/s390x/Makefile.target | 2 ++
tests/tcg/s390x/
trailing bits that must
be 0. For FC these numbers are:
FC=0 (word, 4 bytes):2
FC=1 (double word, 8 bytes): 3
FC=2 (quad word, 16 bytes): 4
For SC these numbers correspond to the size:
SC=0: 0
SC=1: 1
SC=2: 2
SC=3: 3
SC=4: 4
Signed-off-by: Pavel Zbitskiy
Suppose psw.mask=0x8000, cc=2, r1=0 and we do "ipm 1".
This command must touch only bits 32-39, so the expected output
is r1=0x2000. However, currently qemu yields r1=0x20008000,
because irrelevant parts of PSW leak into r1 during program mask
transfer.
Signed-off
loop condition should be > and not >=.
If len_src is 1, then we should flip the 1st byte and pack the 2nd.
Since len_src is already decremented before the loop, the first
condition should be >=, and not >.
Likewise for len_src == 2 and the second condition.
Signed-off-by: Pavel Zbitskiy
These instructions are provided for compatibility purposes and are
used only by old software, in the new code BAS and BASR are preferred.
The difference between the old and new instruction exists only in the
24-bit mode.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/insn-data.def | 3
Copied from alpha.
Signed-off-by: Pavel Zbitskiy
---
tests/tcg/s390x/Makefile.target | 3 +++
tests/tcg/s390x/hello-s390x.c | 7 +++
2 files changed, 10 insertions(+)
create mode 100644 tests/tcg/s390x/Makefile.target
create mode 100644 tests/tcg/s390x/hello-s390x.c
diff --git a/tests
output.
* CVB, CVBY, CVBG: Added.
Changes since v1:
* Tests.
* Call pc_to_link_info() instead of op_bas().
* Clarified CSST commit message.
* Rewrote IPM using extract/deposit.
* Clarified PACK commit message.
* Do not use LowCore for CONFIG_USER_ONLY.
* Reduce duplication in CVB code.
Pavel Zbitskiy
Convert to Binary - counterparts of the already implemented Convert
to Decimal (CVD*) instructions.
Example from the Principles of Operation: 25594C becomes 63FA.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/helper.h | 2 ++
target/s390x/insn-data.def | 4
target/s390x
PACK fails on the test from the Principles of Operation: F1F2F3F4
becomes 234C instead of 0001234C due to an off-by-one error.
Furthermore, it overwrites one extra byte to the left of F1.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/mem_helper.c | 6 +++---
1 file changed, 3 insertions
Improves "b213c9f5: target/s390x: Implement TRTR" by introducing the
intermediate functions, which are compatible with dx_helper type.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/mem_helper.c | 16
1 file changed, 16 insertions(+)
diff --git a/target/s390x/mem_
These instructions are provided for compatibility purposes and are
used only by old software, in the new code BAS and BASR are preferred.
The difference between the old and new instruction exists only in the
24-bit mode.
Signed-off-by: Pavel Zbitskiy
---
target/s390x/insn-data.def | 3
trailing bits that must
be 0. For FC these numbers are:
FC=0: 2
FC=1: 3
FC=2: 4
For SC these numbers are:
SC=0: 0
SC=1: 1
SC=2: 2
SC=3: 3
SC=4: 4
Signed-off-by: Pavel Zbitskiy
---
target/s390x/mem_helper.c | 2 +-
target/s390x/translate.c | 4 ++--
2 files
Add BAL, BALR, CVB instructions
Fix few bugs in PACK, CSST
Pavel Zbitskiy (6):
target/s390x: add BAL and BALR instructions
target/s390x: fix CSST decoding and runtime alignment check
target/s390x: fix ipm polluting irrelevant bits
target/s390x: add EX support for TRT and TRTR
target
Suppose psw.mask=0x8000, cc=2, r1=0 and we do "ipm 1".
This command must touch only bits 32-39, so the expected output
is r1=0x2000. However, currently qemu yields r1=0x20008000,
because irrelevant parts of PSW leak into r1 during program mask
transfer.
Signed-off
Add BAL, BALR, CVB instructions
Fix few bugs in PACK, CSST
Pavel Zbitskiy (6):
target/s390x: add BAL and BALR instructions
target/s390x: fix CSST decoding and runtime alignment check
target/s390x: fix ipm polluting irrelevant bits
target/s390x: add EX support for TRT and TRTR
target
From: Pavel Zbitskiy
optlen parameter of getsockopt() of type socklen_t* was read into
variable of type socklen_t, that caused zeroing out of upper 4 bytes
when running s390x on top of x86_64. This patch changes optlen type
to abi_ulong.
Signed-off-by: Pavel Zbitskiy
---
linux-user/syscall.c
From: Pavel Zbitskiy
addrlen parameter of recvfrom() of type socklen_t* was read into
variable of type socklen_t, that caused zeroing out of upper 4 bytes
when running s390x on top of x86_64. This patch changes addrlen type
to abi_ulong.
Signed-off-by: Pavel Zbitskiy
---
linux-user/syscall.c
From: Pavel Zbitskiy
It was broken by 4ce6243dc6216e35b5b691078ffa856463bfa8db,
where TARGET_CLONE_BACKWARDS was specified instead of
TARGET_CLONE_BACKWARDS2.
Signed-off-by: Pavel Zbitskiy
---
linux-user/s390x/syscall.h |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a
Pavel Zbitskiy (3):
linux-user: fixed s390x clone() argument order
linux-user: fixed getsockopt() optlen
linux-user: fixed recvfrom() addrlen
linux-user/s390x/syscall.h | 2 +-
linux-user/syscall.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
36 matches
Mail list logo