|
From: Abhijit Menon-S. <am...@wi...> - 2003-10-14 00:36:55
|
At 2003-10-14 05:27:59 +0530, am...@wi... wrote:
>
> Would the following suffice to implement LOOPZ/LOOPNZ?
I guess not. :-)
I compiled and ran the following program under valgrind to see what my
patch would accomplish. I got the following:
-1: JIFZL t10, $0x80483BE [abcdSD]
opcode: 58
lit32: 0x80483BE
size: 4
val1,val2,val3: 10, 0, 0
tag1,tag2,tag3: 0, 5, 7
flags_r: 0x0
flags_w: 0x0
extra4b: 0x0
cond: 0x4
signed_widen: 0
jmpkind: 0
argc,regparms_n: 0, 0
has_ret_val: 0
regs_live_after: [abcdSD]
valgrind: vg_to_ucode.c:6528 (disInstr): Assertion `sane' failed.
I'll try to figure out what's happening in VG_(saneUInstr).
Suggestions and advice are welcome.
-- ams
.section .rodata
.s: .string "%d\n"
.text
.globl main
main:
pushl %ebp
movl %esp, %ebp
movl $10, %ecx
.L2:
pushl %ecx
pushl %ecx
pushl $.s
call printf
popl %ecx
popl %ecx
xorl %eax, %eax
loopz .L2
.L3:
xorl %eax, %eax
leave
ret
.size main, .-main
|