ted added a comment.

Hi Paulo,
@clayborg asked me to look at this, because I've worked with systems that have 
multiple address spaces. I was thinking, instead of a WebAssembly specific 
memory read, we should implement an optional generic memory read and write with 
memory space support.

So instead of qWasmMem:frame_index;addr;len, we have something like 
qMemSpaceRead:addr;space;len and qMemSpaceWrite:addr;space;len;data .

"space" is stub dependent - it's just a number, and can mean different things 
for different targets. It could be different modules, like you talk about here, 
or different physical memory areas like in a Motorola 56K DSP, or different 
ways to get at the same memory (physical/virtual/cacheable, or directly 
controlling MESI bits instead of relying on TLB entries) like I implemented in 
FSLDBG.

If we do this, other targets that want to work with memory spaces can use them 
instead of having to implement their own extensions.

About the expression problem - the IR Interpreter doesn't handle some complex 
expressions. It needs work, but most targets use JIT. On Hexagon, we only 
recently enabled JIT in the compiler, and haven't done it in the debugger yet, 
so we use the IR Interpreter for everything. Unfortunately I haven't had time 
to dive into it to make it better.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D78801/new/

https://reviews.llvm.org/D78801



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to