Closed lkolbly closed 9 years ago
Appears to be because in functions where char values are assigned to an int value (e.g. os_memcpy, __strchrnul) the compiler generates a uxtb instruction (zero-extend byte) which is not supported by QEMU. However, a patch was submitted to QEMU in February of 2015 https://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04030.html
I don't believe this patch has become mainstream.
I worked around it in the virtual_memory branch (f842113606ba71c6d328beab73a105fdca4369de), it'll get merged in with master in due course.
Whenever I use os_memset the undefined instruction exception gets triggered a couple of times. This can be reproduced by putting the following code:
immediately after the init_vector_table function in start2 (in the master branch). Then boot the kernel, and near the top you should see:
Does anyone have any idea what's going on?