|
From: John v. S. <jc...@cs...> - 2007-03-12 10:30:56
|
Hello, I'm currently working on a paper, discussing valgrind from top to bottom. What is a paper without a example, right. So I'm working a really simple example to show the translation that valgrind performs from x86 to IR and back again (including optimization). To clarify the example a bit, I'm translating the numbers indicating the virtual registers of the virtual CPU to their counterparts on a x86 CPU. For example my initial translation is : -- IMark(0x400484, 3) -- ; sub %rcx,%rsi PUT(168) = 0x400484:I64 t12 = GET:I64(48) t11 = GET:I64(8) t10 = Sub64(t12,t11) PUT(128) = 0x8:I64 PUT(136) = t12 PUT(144) = t11 PUT(48) = t10 and I try to clarify it by rewriting it to -- IMark(0x400484, 3) -- ; sub %rcx,%rsi PUT(%RIP) = 0x400484:I64 t12 = GET:I64(%RSI) t11 = GET:I64(%RCX) t10 = Sub64(t12,t11) PUT(%RFLAGS) = 0x8:I64 PUT(136) = t12 PUT(144) = t11 PUT(%RSI) = t10 but as you can see, still some virtual registers are unclear to me. So I basicly have the following question: - Is there a list of these numbers to their virtual counterparts? Regards, John van Schie |