Commit Graph

33 Commits

Author SHA1 Message Date
Amaan Qureshi
3a7bde03b8 feat(arm): add an ESR register (#2155)
This allows users to read/write from the ARM syndrome value like in
AArch64.
2025-04-12 21:46:37 +08:00
ExhoAR22
bc73cb232d Fix physical address truncation on 32-bit systems with addressing extensions (#2139)
* use hwaddr for paddrs

* Fix the truncation for memory hooks as well

* Add LPAE regression test


Co-authored-by: Takacs, Philipp <philipp.takacs@iosb.fraunhofer.de>
2025-04-01 10:53:18 +08:00
PhilippTakacs
65ed715081 Snapshot use after free (#2125)
* memory snapshots fix use after free on flatview copy

When restoring a snapshot with memory the flatview must be restored
before the memory reagions are filtered. Because the
AddressSpaceDispatcher also has pointer to the MemoryRegions and on copy
they need to be cleared. The memory_filter_subregions function frees
MemoryRegions which are not used at the time of the snapshot.

* fix some memleaks in tests

These tests has forgott to call uc_close(uc), which lead to memory
leaks. Found by the LeakSanitizer.

* memory snapshots correct clean up container memory regions

* Fix further stackoverflow in tests

---------

Co-authored-by: mio <mio@lazym.io>
2025-03-06 23:23:02 +08:00
mio
c97449869d Format code 2025-02-17 20:17:10 +08:00
Amaan Qureshi
6b9c1c851c fix(arm): correct write to ARM coprocessor (#2099)
This code was commented out since 2021, but by default, the error
codewas initialized to `UC_REG_OK`, so there was no error returned
untila result, any write to `UC_ARM_REG_C1_C0_2` returned an error.
2025-02-13 19:25:26 +08:00
mio
c915d13cce Fix pc issue of tcg opcode hooks 2025-02-10 21:35:17 +08:00
mio
a903fa182b Avoid null ptr deref when writing to arm context pc register 2025-02-10 15:58:28 +08:00
dotcirill
dc1f7a88d5 Uc hook tcg improve (#2011)
* Add handling UC_TCG_OP_FLAG_CMP for ARM

Implementation is not well-tested and complete

* Hook ARM32 CMP and CMN for cmplog
2025-02-10 15:01:21 +08:00
xndcn
1ba25def8e Fix UC_HOOK_MEM on arm32 (#2091) 2025-01-26 13:28:24 +08:00
mio
4b961a8ef6 Apply fix for big endian hosts per #1710 2022-10-28 16:20:20 +02:00
mio
da3999b6f0 Add tests for thumb2 2022-10-21 11:37:07 +02:00
mio
19d8876e23 Deep copy for arm cpu state 2022-10-01 00:14:08 +02:00
c379d1bfe4 Format code 2022-04-16 17:50:12 +02:00
shuffle2
2912cd1e29 fix rust bindings build on windows (#1584)
Refine rust bindings.
2022-04-16 13:40:04 +02:00
e3d0a33ab8 Fix BE32 usermode address XOR 2022-04-05 11:55:58 +02:00
e382ca102a Fix the regression bug 2022-02-13 09:52:00 +01:00
a2f18bbfaf Format code 2022-02-12 16:29:00 +01:00
5683a5484d Add test for switch endianess runtime 2022-02-12 14:35:33 +01:00
380e72bc12 Add tests for armeb CPSR.E and SCTLR.B 2022-02-12 14:29:15 +01:00
58fc952230 Remove armeb-softmmu and aarch64eb-softmmu 2022-02-12 14:15:54 +01:00
8bc1489210 Implement coprocessor register read/write for arm 2022-02-11 21:45:37 +01:00
ea9c7425b0 Fix the wrong PC when arm translation fectches unmapped memory
This behavior keeps the same with Unicorn1, though, different from arm doc
2022-01-16 16:42:38 +01:00
6ed2214399 Rebuilt hflags when swithing modes
Or we may get the wrong mode during translation
2022-01-14 19:37:48 +01:00
e84a5c44e9 Add a test for arm mrc instruction (also for coproc) 2022-01-05 21:57:32 +01:00
3f64491fda Add further test for arm system mode transition 2022-01-05 19:38:02 +01:00
73149f3616 Fix test case 2022-01-04 20:54:52 +01:00
7dc858d03d Add a test for arm privilege escalation 2022-01-04 20:30:07 +01:00
cddc9cf2ed Fix arm post init 2021-12-25 00:16:51 +01:00
5b3a9e1024 Add test for arm v8 2021-12-24 23:45:57 +01:00
4f73d75ea8 Fix #1500 2021-12-23 21:46:27 +01:00
221cde18df Write CPSR as it is initiated from instructions to allow regs switch 2021-11-24 17:10:51 +01:00
e62b0ef255 Add clang-format and format code to qemu code style 2021-10-29 12:44:49 +02:00
Nguyen Anh Quynh
aaaea14214 import Unicorn2 2021-10-03 22:14:44 +08:00