mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
target-s390: Convert STCM
Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
32a44d5882
commit
2ae6805906
4 changed files with 53 additions and 63 deletions
|
@ -304,27 +304,6 @@ uint32_t HELPER(clm)(CPUS390XState *env, uint32_t r1, uint32_t mask,
|
|||
return cc;
|
||||
}
|
||||
|
||||
/* store character under mask */
|
||||
void HELPER(stcm)(CPUS390XState *env, uint32_t r1, uint32_t mask,
|
||||
uint64_t addr)
|
||||
{
|
||||
uint8_t r;
|
||||
|
||||
HELPER_LOG("%s: r1 0x%x mask 0x%x addr 0x%lx\n", __func__, r1, mask,
|
||||
addr);
|
||||
while (mask) {
|
||||
if (mask & 8) {
|
||||
r = (r1 & 0xff000000UL) >> 24;
|
||||
cpu_stb_data(env, addr, r);
|
||||
HELPER_LOG("mask 0x%x %02x (0x%lx) ", mask, r, addr);
|
||||
addr++;
|
||||
}
|
||||
mask = (mask << 1) & 0xf;
|
||||
r1 <<= 8;
|
||||
}
|
||||
HELPER_LOG("\n");
|
||||
}
|
||||
|
||||
static inline uint64_t get_address(CPUS390XState *env, int x2, int b2, int d2)
|
||||
{
|
||||
uint64_t r = d2;
|
||||
|
@ -608,22 +587,6 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, uint64_t v1,
|
|||
return cc;
|
||||
}
|
||||
|
||||
/* store character under mask high operates on the upper half of r1 */
|
||||
void HELPER(stcmh)(CPUS390XState *env, uint32_t r1, uint64_t address,
|
||||
uint32_t mask)
|
||||
{
|
||||
int pos = 56; /* top of the upper half of r1 */
|
||||
|
||||
while (mask) {
|
||||
if (mask & 8) {
|
||||
cpu_stb_data(env, address, (env->regs[r1] >> pos) & 0xff);
|
||||
address++;
|
||||
}
|
||||
mask = (mask << 1) & 0xf;
|
||||
pos -= 8;
|
||||
}
|
||||
}
|
||||
|
||||
/* load access registers r1 to r3 from memory at a2 */
|
||||
void HELPER(lam)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue