qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] target-s390x: Implement stfl and stfle


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH] target-s390x: Implement stfl and stfle
Date: Sat, 25 Feb 2017 11:05:55 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

On 02/25/2017 12:44 AM, Michal Marek wrote:
+DEF_HELPER_1(stfl, void, env)

DEF_HELPER_FLAGS_1(stfl, TCG_CALL_NO_RWG, void, env)

since this touches no registers, and only writes to lomem which afaik cannot fault in kernel mode.

+DEF_HELPER_3(stfle, i64, env, i64, i64)

Unfortunately, we are writing to cc_op, so we do have a TCG register write, so I guess this is the best we can do here.

+static int do_stfle(CPUS390XState *env, uint64_t addr, int len)
+{
+    S390CPU *cpu = s390_env_get_cpu(env);
+    uint8_t data[64];

S390FeatBitmap or S390FeatInit?  Or even a sizeof?
Hard coding 64 certainly doesn't seem right.

+    memset(data, 0, sizeof(data));
+    res = s390_fill_feat_block(cpu->model->features, S390_FEAT_TYPE_STFL, 
data);
+    cpu_physical_memory_write(addr, data, MIN(res, len));

No, not physical memory, you need to write to virtual memory, at least for STFLE. Which, as you'll recall can be used from user-mode.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]