Home | History | Annotate | Download | only in libdisasm

Lines Matching refs:ea

39 #define PRINT_DISPLACEMENT( ea ) do {                            \
40 if ( ea->disp_size && ea->disp ) { \
41 if ( ea->disp_sign ) { \
42 STRNCATF( buf, "-0x%" PRIX32, -ea->disp, len ); \
44 STRNCATF( buf, "0x%" PRIX32, ea->disp, len ); \
161 static int format_expr( x86_ea_t *ea, char *buf, int len,
166 if (ea->base.name[0] || ea->index.name[0] || ea->scale) {
167 PRINT_DISPLACEMENT(ea);
170 if ( ea->base.name[0]) {
171 STRNCATF( buf, "%%%s", ea->base.name, len );
173 if ( ea->index.name[0]) {
174 STRNCATF( buf, ",%%%s", ea->index.name, len );
175 if ( ea->scale > 1 ) {
176 STRNCATF( buf, ",%d", ea->scale, len );
180 if ( ! ea->base.name[0] &&
181 ! ea->index.name[0] ) {
182 STRNCATF( buf, ",%d", ea->scale, len );
187 STRNCATF( buf, "0x%" PRIX32, ea->disp, len );
191 if ( ea->base.name[0]) {
194 get_operand_regtype_str (ea->base.type, str,
197 STRNCATF (buf, "name=\"%s\" ", ea->base.name, len);
199 STRNCATF (buf, "size=%d/>\n", ea->base.size, len);
204 if ( ea->index.name[0]) {
207 get_operand_regtype_str (ea->index.type, str,
211 STRNCATF (buf, "name=\"%s\" ", ea->index.name, len);
213 STRNCATF (buf, "size=%d/>\n", ea->index.size, len);
221 STRNCATF (buf, "value=\"%d\"/>\n", ea->scale, len);
224 if ( ea->disp_size ) {
228 if ( ea->disp_size > 1 && ! ea->disp_sign ) {
230 STRNCATF (buf, "value=\"0x%" PRIX32 "\"/>\n", ea->disp,
234 STRNCATF (buf, "value=%" PRId32 "/>\n", ea->disp, len);
242 PRINT_DISPLACEMENT(ea);
245 STRNCATF( buf, "%s,", ea->base.name, len );
246 STRNCATF( buf, "%s,", ea->index.name, len );
247 STRNCATF( buf, "%d", ea->scale, len );
254 if ( ea->base.name[0] ) {
255 STRNCAT( buf, ea->base.name, len );
256 if ( ea->index.name[0] ||
257 (ea->disp_size && ! ea->disp_sign) ) {
261 if ( ea->index.name[0] ) {
262 STRNCAT( buf, ea->index.name, len );
263 if ( ea->scale > 1 )
265 STRNCATF( buf, "*%" PRId32, ea->scale, len );
267 if ( ea->disp_size && ! ea->disp_sign )
273 if ( ea->disp_size || (! ea->index.name[0] &&
274 ! ea->base.name[0] ) )
276 PRINT_DISPLACEMENT(ea);