1/* Instruction printing code for the ARM 2 Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 3 Free Software Foundation, Inc. 4 Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) 5 Modification by James G. Smith (jsmith@cygnus.co.uk) 6 7This file is part of libopcodes. 8 --- 187 unchanged lines hidden (view full) --- 196 func (stream, "[pc"); 197 198 if (given & 0x01000000) 199 { 200 if ((given & 0x00800000) == 0) 201 offset = - offset; 202 203 /* pre-indexed */ |
204 func (stream, ", #%d]", offset); |
205 206 offset += pc + 8; 207 208 /* Cope with the possibility of write-back 209 being used. Probably a very dangerous thing 210 for the programmer to do, but who are we to 211 argue ? */ 212 if (given & 0x00200000) 213 func (stream, "!"); 214 } 215 else 216 { 217 /* Post indexed. */ |
218 func (stream, "], #%d", offset); |
219 220 offset = pc + 8; /* ie ignore the offset. */ 221 } 222 223 func (stream, "\t; "); 224 info->print_address_func (offset, info); 225 } 226 else --- 48 unchanged lines hidden (view full) --- 275 if ((given & 0x004f0000) == 0x004f0000) 276 { 277 /* PC relative with immediate offset. */ 278 int offset = ((given & 0xf00) >> 4) | (given & 0xf); 279 280 if ((given & 0x00800000) == 0) 281 offset = -offset; 282 |
283 func (stream, "[pc, #%d]\t; ", offset); |
284 285 (*info->print_address_func) 286 (offset + pc + 8, info); 287 } 288 else 289 { 290 func (stream, "[%s", 291 arm_regnames[(given >> 16) & 0xf]); --- 805 unchanged lines hidden --- |