@@ -15,13 +15,13 @@ void HELPER(trace_newframe)(target_ulong pc)
1515 qemu_trace_newframe (pc , 0 );
1616}
1717
18- void HELPER (trace_endframe )(CPUX86State * env , target_ulong old_pc , size_t size )
18+ void HELPER (trace_endframe )(CPUArchState * env , target_ulong old_pc , uint32_t size )
1919{
2020 //qemu_trace_endframe(env, env->eip - size, size);
2121 qemu_trace_endframe (env , old_pc , size );
2222}
2323
24- OperandInfo * load_store_reg (uint32_t reg , uint32_t val [ 4 ], int size , int ls )
24+ OperandInfo * load_store_reg (uint32_t reg , uint32_t val , int ls )
2525{
2626 //fprintf(stderr, "load_store_reg: reg: (%s) 0x%d, val: 0x%08x, ls: %d\n", (reg < CPU_NB_REGS) ? regs[reg] : "EFLAGS", reg, val, ls);
2727 RegOperand * ro = (RegOperand * )malloc (sizeof (RegOperand ));
@@ -52,12 +52,12 @@ OperandInfo * load_store_reg(uint32_t reg, uint32_t val[4], int size, int ls)
5252 }
5353 OperandInfo * oi = (OperandInfo * )malloc (sizeof (OperandInfo ));
5454 operand_info__init (oi );
55- oi -> bit_length = size * 8 ;
55+ oi -> bit_length = 0 ;
5656 oi -> operand_info_specific = ois ;
5757 oi -> operand_usage = ou ;
58- oi -> value .len = size ;
58+ oi -> value .len = 4 ;
5959 oi -> value .data = malloc (oi -> value .len );
60- memcpy (oi -> value .data , val , size );
60+ memcpy (oi -> value .data , & val , 4 );
6161
6262 return oi ;
6363}
@@ -66,56 +66,43 @@ void HELPER(trace_load_reg)(uint32_t reg, uint32_t val)
6666{
6767 qemu_log ("This register (r%d) was read. Value 0x%x\n" , reg , val );
6868
69- uint32_t vals [4 ];
70-
71- vals [0 ] = val ;
72-
73- OperandInfo * oi = load_store_reg (reg , vals , 4 , 0 );
69+ OperandInfo * oi = load_store_reg (reg , val , 0 );
7470
7571 qemu_trace_add_operand (oi , 0x1 );
7672}
7773
7874void HELPER (trace_store_reg )(uint32_t reg , uint32_t val )
7975{
80-
81- uint32_t vals [4 ];
82-
83- vals [0 ] = val ;
84-
8576 qemu_log ("This register (r%d) was written. Value: 0x%x\n" , reg , val );
8677
87- OperandInfo * oi = load_store_reg (reg , vals , 4 , 1 );
78+ OperandInfo * oi = load_store_reg (reg , val , 1 );
8879
8980 qemu_trace_add_operand (oi , 0x2 );
9081}
9182
92- void HELPER (trace_load_eflags )(CPUX86State * env )
83+ void HELPER (trace_load_eflags )(CPUArchState * env )
9384{
94- uint32_t vals [4 ];
95-
96- vals [0 ] = cpu_compute_eflags (env );
85+ uint32_t val = cpu_compute_eflags (env );
9786
98- OperandInfo * oi = load_store_reg (REG_EFLAGS , vals , 4 , 0 );
87+ OperandInfo * oi = load_store_reg (REG_EFLAGS , val , 0 );
9988
10089 //OperandInfo *oi = load_store_reg(REG_EFLAGS, cpu_compute_eflags(env), 0);
10190
10291 qemu_trace_add_operand (oi , 0x1 );
10392}
10493
105- void HELPER (trace_store_eflags )(CPUX86State * env )
94+ void HELPER (trace_store_eflags )(CPUArchState * env )
10695{
107- uint32_t vals [4 ];
108-
109- vals [0 ] = cpu_compute_eflags (env );
96+ uint32_t val = cpu_compute_eflags (env );
11097
111- OperandInfo * oi = load_store_reg (REG_EFLAGS , vals , 4 , 1 );
98+ OperandInfo * oi = load_store_reg (REG_EFLAGS , val , 1 );
11299
113100 //OperandInfo *oi = load_store_reg(REG_EFLAGS, cpu_compute_eflags(env), 1);
114101
115102 qemu_trace_add_operand (oi , 0x2 );
116103}
117104
118- OperandInfo * load_store_mem (uint32_t addr , uint32_t val , int ls )
105+ OperandInfo * load_store_mem (uint32_t addr , uint32_t val , int ls , int len )
119106{
120107 //fprintf(stderr, "load_store_mem: addr: 0x%08x, val: 0x%08x, ls: %d\n", addr, val, ls);
121108 MemOperand * mo = (MemOperand * )malloc (sizeof (MemOperand ));
@@ -137,30 +124,30 @@ OperandInfo * load_store_mem(uint32_t addr, uint32_t val, int ls)
137124 }
138125 OperandInfo * oi = (OperandInfo * )malloc (sizeof (OperandInfo ));
139126 operand_info__init (oi );
140- oi -> bit_length = 32 ;
127+ oi -> bit_length = len * 8 ;
141128 oi -> operand_info_specific = ois ;
142129 oi -> operand_usage = ou ;
143- oi -> value .len = 4 ;
130+ oi -> value .len = len ;
144131 oi -> value .data = malloc (oi -> value .len );
145- memcpy (oi -> value .data , & val , 4 );
132+ memcpy (oi -> value .data , & val , len );
146133
147134 return oi ;
148135}
149136
150- void HELPER (trace_ld )(CPUX86State * env , uint32_t val , uint32_t addr )
137+ void HELPER (trace_ld )(CPUArchState * env , uint32_t val , uint32_t addr )
151138{
152- qemu_log ("This was a read 0x%x addr:0x%x value:0x%x\n" , env -> eip , addr , val );
139+ qemu_log ("This was a read 0x" TARGET_FMT_lx " addr:0x%x value:0x%x\n" , env -> eip , addr , val );
153140
154- OperandInfo * oi = load_store_mem (addr , val , 0 );
141+ OperandInfo * oi = load_store_mem (addr , val , 0 , 4 );
155142
156143 qemu_trace_add_operand (oi , 0x1 );
157144}
158145
159- void HELPER (trace_st )(CPUX86State * env , uint32_t val , uint32_t addr )
146+ void HELPER (trace_st )(CPUArchState * env , uint32_t val , uint32_t addr )
160147{
161- qemu_log ("This was a store 0x%x addr:0x%x value:0x%x\n" , env -> eip , addr , val );
148+ qemu_log ("This was a store 0x" TARGET_FMT_lx " addr:0x%x value:0x%x\n" , env -> eip , addr , val );
162149
163- OperandInfo * oi = load_store_mem (addr , val , 1 );
150+ OperandInfo * oi = load_store_mem (addr , val , 1 , 4 );
164151
165152 qemu_trace_add_operand (oi , 0x2 );
166153}
0 commit comments