3 * aclocal.m4: New file.
4 * configure: Regenerate.
8 * configure.ac: Change include to common/acinclude.m4.
12 * configure.ac: Change AC_PREREQ to 2.64. Delete AC_CONFIG_HEADER
13 call. Replace common.m4 include with SIM_AC_COMMON.
14 * configure: Regenerate.
19 * iwmmxt.c (WCMPGT): Sign extend 32-bit values before performing a
21 (WMAC): Extend computed result before adding to result register.
22 (WRSA): Sign extend 32-bit values before shifting.
26 * wrapper.c (sim_complete_command): New stub function.
30 * communicate.c (MYread_char): Check error return from accept() call
31 by its equality to -1 not by it being negative.
32 (MYread_charwait): Likewise.
33 * main.c (main): Likewise for both socket() and accept() calls.
37 * wrapper.c (sim_write): Add const to buffer arg.
41 * configure: Regenerate.
45 * config.in: Regenerate.
46 * configure: Likewise.
48 * configure: Regenerate.
52 * arminit.c, iwmmxt.c: Include <string.h> to
56 * configure: Regenerate to track ../common/common.m4 changes.
63 * configure: Regenerate.
64 * wrapper.c (sim_target_display_usage): Add help parameter.
68 * armos.c (SWIflen): Do not treate file descriptor zero as
73 * armemu.c (handle_v6_insn): Fix typo in sign extension test of
74 the sext and sxtah instructions.
79 * wrapper.c (sim_target_parse_arg_array): Do not return void value.
84 * config.in: Regenerate.
88 * configure: Regenerated.
92 * configure: Regenerated.
96 * configure: Regenerated.
100 * elfos.c (ARMul_OSHandleSWI): Call correct function for IsTTY.
104 * armos.c (ARMul_OSHandleSWI): Handle the RedBoot system
105 call meminfo. Return ENOSYS for unhandled RedBoot syscalls.
109 * wrapper.c (gdb/signals.h): Include it.
110 (SIGTRAP): Don't define.
112 (sim_stop_reason): Use TARGET_SIGNAL_* instead of SIG*.
116 * armos.c: Include limits.h
117 (unlink): Remove this macro. It is unused in this file and
118 conflicts with sim_callback->unlink.
119 (PATH_MAX): Define as 1024 if not already defined.
120 (ReadFileName): New function.
121 (SWIopen): Fix a potential buffer overflow.
122 (SWIremove): New function.
124 (ARMul_OSHandleSWI): Handle the RDP calls SWI_IsTTY,
125 SWI_Remove, and SWI_Rename, as well as the RDI calls
126 AngelSWI_Reason_IsTTY, AngelSWI_Reason_Remove, and
127 AngelSWI_Reason_Rename.
131 * armdefs.h: Define ARMsword and ARMsdword. Use stdint.h when
133 * armemu.c: Use them.
134 * armvirt.c (ARMul_MemoryInit): Use correct type for size.
135 * configure.ac: Check for stdint.h.
136 * config.in: Regenerate.
137 * configure: Regenerate.
141 * thumbemu.c (handle_v6_thumb_insn): New function.
142 (ARMul_ThumbDecode): Call handle_v6_thumb_insn() when an undefined
143 instruction binary is encountered.
147 * Update the address and phone number of the FSF organization in
148 the GPL notices in the following files:
149 COPYING, Makefile.in, armcopro.c, armdefs.h, armemu.c,
150 armemu.h, armfpe.h, arminit.c, armopts.h, armos.c, armos.h,
151 armrdi.c, armsupp.c, armvirt.c, bag.c, bag.h, communicate.c,
152 communicate.h, dbg_conf.h, dbg_cp.h, dbg_hif.h, dbg_rdi.h,
153 gdbhost.c, gdbhost.h, iwmmxt.c, iwmmxt.h, kid.c, main.c,
154 maverick.c, parent.c, thumbemu.c, wrapper.c
158 * armemu.c (handle_v6_insn): New function - emulate a few of the
159 v6 instructions - the ones now generated by GCC.
160 (ARMulEmulate32): Call handle_v6_insn when a possible v6 insn is
162 * armdefs.h (struct ARMul_State): Add new field: is_v6.
163 (ARM_v6_Prop): Define.
164 * arminit.c (ARMul_NewState): Initialise the v6 flag.
165 (ARMul_SelectProcessor): Determine if the v6 flag should be
167 * wrapper.c (sim_create_inferior): For unknown architectures,
168 default to allowing the v6 instructions.
172 * iwmmxt.c (WMAC, WMADD): Move casts from the LHS of an assignment
174 (WSLL, WSRA, WSRL, WUNPCKEH, WUNPACKEL): Use ULL suffix to
175 indicate an unsigned long long constant.
179 * configure: Regenerate.
183 * configure.ac: Sinclude aclocal.m4 before common.m4. Add
184 explicit call to AC_CONFIG_HEADER.
185 * configure: Regenerate.
189 * configure.ac: Update to use ../common/common.m4.
190 * configure: Re-generate.
194 * configure: Regenerated to track ../common/aclocal.m4 changes.
198 * configure.ac: Rename configure.in, require autoconf 2.59.
199 * configure: Re-generate.
203 * configure: Regenerate for ../common/aclocal.m4 update.
207 * armemu.c: Rename ui_loop_hook to deprecated_ui_loop_hook.
211 * armos.c (fcntl.h): Do not include it.
212 (O_RDONLY): Do not define.
213 (O_WRONLY): Likewise.
215 (targ-vals.h): Include it.
216 (translate_open_mode): Use TARGET_O_* instead of O_*.
218 * Makefile.in (armos.o): Depend on targ-vals.h.
222 * armvirt.c (GetWord): Only call XScale_check_memacc if in XScale
228 * configure.in (CON_FLAGS): Remove.
229 (COPRO): Unconditionally include iwmmxt.o.
230 * configure: Regenerate.
231 * Makefile.in (CON_FLAGS): Remove.
232 * armcopro.c: Remove use of __IWMMXT__ flag.
233 * wrapper.c: Likewise.
234 * armemu.c: Likewise.
235 Add explanatory comment for suppressed code.
239 * armos.c (ARMul_OsHandleSWI): Catch SWIs for unhandled vectors.
243 * configure.in: (CON_FLAGS): Define and intialise.
244 (COPRO): Add iwmmxt.o if configuring for XScale.
245 * configure: Regenerate.
246 * Makefile.in (iwmmxt.o): Add rule to build.
248 (ALL_FLAGS): Add CON_FLAGS.
249 * armcopro.c (ARMul_CoProInit): Initialise iWMMXt coprocessors.
250 * armdefs.h (struct ARMul_State): Add 'is_iWMMXt' field.
251 (ARM_iWMMXt_Prop): Define.
252 * armemu.c (ARMul_Emulate16): Intercept iWMMXt instructions and
254 * arminit.c (ARMul_NewState): Initialise 'is_iWMMXt'.
255 (ARMul_Abort): Catch branches through uninitialised vectors.
256 * armos.c (softevtorcode): Update comment.
257 (ARMul_OsInit): Use ARMUndefinedInstrV.
258 * wrapper.c (sim_create_inferior): Handle iWMMXt processor type.
259 (sim_store_register): Handle iWMMXt registers.
260 (sim_fetch_register): Handle iWMMXt registers.
261 * iwmmxt.h: New file. Exported iWMMXt coprocessor emulator
263 * iwmmxt.c: New file: iWMMXt emulator.
267 * Contribute support for Cirrus Maverick ARM co-processor,
271 * maverick.c: New file: Support for Maverick floating point
273 * Makefile.in: Add maverick.o target.
274 * configure.in (COPRO): Add maverick.o.
275 * configure: Regenerate.
276 * armcopro.c (ARMul_CoProInit): Only initialise co-processors
277 available on target processor. Add code to initialse Maverick
278 co-processor support code.
279 * armdefs.h (ARMul_state): Add is_ep9312 field.
280 (ARM_ep9312_Prop): Define.
281 * armemu.h: Add prototypes for Maverick co-processor
283 * arminit.c (ARMul_SelectProcessor): Initialise the
284 co-processor support once the chip has been selected.
285 * wrapper.c: Add support for Maverick co-processor.
286 (init): Do not call ARMul_CoProInit. Delays this until the
287 chip has been selected.
291 * armos.c (SWIWrite0): Catch big-endian bug when printing
296 * wrapper.c (sim_create_inferior, sim_open): Rename _bfd to bfd.
300 * README.Cygnus: Rename from this ..
301 * README: .. to this.
305 * wrapper.c (sim_open): Add support for -m<mem-size>.
306 (mem_size): Reduce to 2MB.
311 * armos.c (ARMul_OSHandleSWI): Catch and ignore SWIs of -1, they
312 can be caused by an interrupted system call being resumed by GDB.
316 * armemu.c (ARMul_Emulate32): Add more tests for valid MIA, MIAPH
317 and MIAxy instructions.
321 * armos.h (ADP_Stopped_RunTimeError): Set correct value.
325 * configure: Regenerated to track ../common/aclocal.m4 changes.
329 * Makefile.in: Update copyright.
330 (wrapper.o): Specify dependencies.
331 * wrapper.c: Include "gdb/sim-arm.h".
332 (sim_store_register, sim_fetch_register): Rewrite using `enum
333 arm_sim_regs' and a switch.
337 * wrapper.c: Include "gdb/callback.h" and "gdb/remote-sim.h".
338 * armos.c: Include "gdb/callback.h".
342 * armcopro.c (XScale_check_memacc): Set the FSR and FAR registers
343 if a Data Abort is detected.
347 * armvirt.c (GetWord): Only perform access checks if 'check'
350 * wrapper.c (sim_create_inferior): Report unknown machine
352 * thumbemu.c (ARMul_ThumbDecode, Case 31): Do not set LR to pc +
353 2, it has already been advanced.
357 * thumbemu.c (ARMul_ThumbDecode): When decoding a BLX(1)
358 instruction do not add in the second bit of the base address -
359 this has already been accounted for.
363 * armcopro.c (check_cp13_access): Allow access to register 1 when
365 (write_cp13_reg): Allow bit 0 of reg 1 of CRm 1 to be written to.
369 * Makefile.in (SIM_TARGET_SWITCHES): Define.
370 * armos.c (swi_mask): Define. Initialise to supporting all
372 (ARMul_OSInit): For XScale targets, only support the ANGEL
373 SWI interface. (This is at the request if Intel).
374 (ARMul_OSHandleSWI): Examine swi_mask to see if a particular
375 SWI call should be emulated.
376 Do not fall through from AngelSWI_Reason_WriteC.
377 Propagate exit code from RedBoot Exit SWI.
378 * rdi-dgb.h (swi_mask): Prototype.
379 (SWI_MASK_DEMON, SWI_MASK_ANGEL, SWI_MASK_REDBOOT): Define.
380 * wrapper.c (sim_target_parse_command_line): New function.
381 Look for and handle --swi-support switch.
382 (sim_target_parse_arg_array): New function. Process an argv
383 array for parsing by sim_target_parse_command_line.
384 (sim_target_display_usage): New function. Describe syntax of
385 --swi-suppoort switch.
386 (sim_open): Add call to sim_target_parse_arg_array).
390 * armos.c (ARMul_OSHandleSWI): Support the RedBoot SWI in ARM
391 mode and some of its system calls.
395 * wrapper.c (mem_size): Increase the default target memory to 8MB.
399 * armos.c (SWIWrite0): Use generic host_callback mechanism
400 for supported OS functions "open", "close", "write", etc.
403 (SWIwrite): Likewise.
405 (ARMul_OSHandleSWI): Likewise.
409 * wrapper.c (sim_create_inferior): Modify previous patch so that
410 it is only triggered for COFF format executables.
414 * wrapper.c (sin_create_inferior): If a v5 architecture is
415 detected, assume it might be an XScale binary, since there is no
416 way to distinguish between the two in the COFF file format.
420 * arminit.c (ARMul_Abort): Fix parameters passed to CPRead[13].
421 * armemu.c (ARMul_Emulate32): Fix parameters passed to CPRead[13]
423 Fix formatting. Improve layout.
424 * armemu.h: Fix formatting. Improve layout.
428 * wrapper.c (sim_fetch_register): If fetching more than 4 bytes
429 return zeroes in the other words.
430 General formatting tidy ups.
434 * Makefile.in (armemu32.o): Replace $< with autoconf recommended
440 * armemu.h (CP_ACCESS_ALLOWED): New macro.
442 * armcopro.c (read_cp14_reg): Make static.
443 (write_cp14_reg): Make static.
444 (check_cp13_access): Use CP_ACCESS_ALLOWED macro.
446 * armsupp.c (ARMul_LDC): Check CP_ACCESS_ALLOWED.
447 (ARMul_STC): Check CP_ACCESS_ALLOWED.
448 (ARMul_MCR): Check CP_ACCESS_ALLOWED.
449 (ARMul_MRC): Check CP_ACCESS_ALLOWED.
450 (ARMul_CDP): Check CP_ACCESS_ALLOWED.
452 * armemu.c (MCRR): Check CP_ACCESS_ALLOWED. Test Rd and Rn not
454 (MRRC): Check CP_ACCESS_ALLOWED. Test Rd and Rn not equal to 15.
459 * armemu.c (ARMul_Emulate32): Fix handling of XScale LDRD and STRD
460 instructions with post indexed addressing modes.
464 * armsupp.c (ARMul_FixCPSR): Check Mode not Bank in order to
465 determine rocesor mode.
469 * armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes.
470 (read_cp15_reg): Make non-static.
471 (XScale_cp15_LDC): Update for write_cp15_reg() change.
472 (XScale_cp15_MCR): Likewise.
473 (XScale_cp15_write_reg): Likewise.
474 (XScale_check_memacc): New function. Check for breakpoints being
475 activated by memory accesses. Does not support the Branch Target
477 (XScale_set_fsr_far): New function. Set FSR and FAR for XScale.
478 (XScale_debug_moe): New function. Set the debug Method Of Entry,
480 (write_cp14_reg): Reset count counter if requested.
481 * armdefs.h (struct ARMul_State): New members `LastTime' and
482 `CP14R0_CCD' used for the timer/counters.
483 (ARMul_CP13_R0_FIQ, ARMul_CP13_R0_IRQ, ARMul_CP13_R8_PMUS,
484 ARMul_CP14_R0_ENABLE, ARMul_CP14_R0_CLKRST, ARMul_CP14_R0_CCD,
485 ARMul_CP14_R0_INTEN0, ARMul_CP14_R0_INTEN1, ARMul_CP14_R0_INTEN2,
486 ARMul_CP14_R0_FLAG0, ARMul_CP14_R0_FLAG1, ARMul_CP14_R0_FLAG2,
487 ARMul_CP14_R10_MOE_IB, ARMul_CP14_R10_MOE_DB, ARMul_CP14_R10_MOE_BT,
488 ARMul_CP15_R1_ENDIAN, ARMul_CP15_R1_ALIGN, ARMul_CP15_R5_X,
489 ARMul_CP15_R5_ST_ALIGN, ARMul_CP15_R5_IMPRE, ARMul_CP15_R5_MMU_EXCPT,
490 ARMul_CP15_DBCON_M, ARMul_CP15_DBCON_E1, ARMul_CP15_DBCON_E0): New
491 defines for XScale registers.
492 (XScale_check_memacc, XScale_set_fsr_far, XScale_debug_moe): Prototype.
493 (ARMul_Emulate32, ARMul_Emulate26): Clean up function definition.
494 (ARMul_Emulate32): Handle the clock counter and hardware instruction
495 breakpoints. Call XScale_set_fsr_far() for software breakpoints and
497 (LoadMult): Call XScale_set_fsr_far() for data aborts.
498 (LoadSMult): Likewise.
499 (StoreMult): Likewise.
500 (StoreSMult): Likewise.
501 * armemu.h (write_cp15_reg): Update prototype.
502 * arminit.c (ARMul_NewState): Initialise CP14R0_CCD and LastTime.
503 (ARMul_Abort): If XScale, check for FIQ and IRQ being enabled in CP13
505 * armvirt.c (GetWord): Call XScale_check_memacc().
510 * armvirt.c (ARMul_ReLoadInstr): Do not enable alignment checking
511 when loading unaligned thumb instructions.
515 * thumbemu.c (ARMul_ThumbDecode): Delete label bo_blx2.
516 Compute destination address of BLX(1) instruction by
517 taking bit 1 from PC and not from bit 0 of the offset.
521 * armvirt.c (GetWord): Add new parameter - check - to enable or
522 disable the alignment checking.
523 (PutWord): Add new parameter - check - to enable or disable the
525 (ARMul_ReLoadInstr): Pass extra parameter to GetWord.
526 (ARMul_ReadWord): Pass extra parameter to GetWord.
527 (ARMul_WriteWord): Pass extra parameter to PutWord.
528 (ARMul_StoreHalfWord): Pass extra parameter to PutWord.
529 (ARMul_WriteByte): Pass extra parameter to GetWord.
530 (ARMul_SwapWord): Pass extra parameter to PutWord.
531 (ARMul_SafeReadByte): New Function: Read a byte but do not abort.
532 (ARMul_SafeWriteByte): New Function: Write a byte but do not abort.
534 * armdefs.h: Add prototypes for ARMul_SafeReadByte and
537 * wrapper.c (sim_write): Use ARMul_SafeWriteByte.
538 (sim_read): Use ARMul_SafeReadByte.
540 * armos.c (in_SWI_handler): Remove.
541 (SWIWrite0): Use ARMul_SafeReadByte.
542 (WriteCommandLineTo): Use ARMul_SafeWriteByte.
543 (SWIopen): Use ARMul_SafeReadByte.
544 (SWIread): Use ARMul_SafeWriteByte.
545 (SWIwrite): Use ARMul_SafeReadByte.
546 (ARMul_OSHandleSWI): Remove use of is_SWI_handler.
547 (ARMul_OSException): Remove use of is_SWI_handler.
551 * armemu.c: Remove Prefetch abort for breakpoints. Instead set
556 * armemu.c: Add code to preserve processor mode when a prefetch
557 abort is signalled after processing a breakpoint.
559 * wrapper.c (sim_create_inferior): Reset processor into ARM mode
560 for any machine type except the early ARMs.
564 * armos.c (in_SWI_handler): New static variable.
565 (ARMul_OSHandleSWI): Set in_SWI_handler whilst emulating a SWI.
566 (ARMul_OSException): Ignore exceptions generated whilst emulating
571 * armemu.h (NEGBRANCH): Fix defintion.
575 * armemu.c (LoadSMult): Update base address register after
576 restoring register bank.
577 (StoreMult): Update base address register after restoring register
582 * armvirt.c (PutWord): Detect installation of SWI vector.
583 (SWI_vector_installed): Define.
584 * armos.c (ARMul_OsInit): Reset SWI_vector_installed.
585 * armos.h (SWI_vector_installed): Declare.
586 * wrapper.c (SWI_vector_installed): Remove definition.
587 (sim_write): Remove check of SWI vector installation
591 * armemu.c (ARMul_Emulate26): Fix test for StoreDouble
596 * armos.c (ARMul_OSHandleSWI): Add 0x91 as an FPE SWI.
600 * armemu.c (ARMul_Emulate26): Detect double word load and
601 store instructions and call emulation routines.
602 (Handle_Load_Double): Emulate a double word load instruction.
603 (Handle_Store_Double): Emulate a double word store
608 * armos.c: Fix formatting.
609 (ARMul_OSHandleSWI): Suppress support of DEMON SWIs when in xscale
614 * armdefs.h (State): Add 'v5e' and 'xscale' fields.
615 (ARM_v5e_Prop): Define.
616 (ARM_XScale_Prop): Define.
618 * wrapper.c (sim_create_inferior): Select processor based on
620 (SWI_vector_installed): New boolean. Set to true if the SWI
621 vector address is written to by the executable.
623 * arminit.c (ARMul_NewState): Switch default to 32 bit mode.
624 (ARMul_SelectProcessor): Initialise v5e and xscale signals.
625 (ARMul_Abort): Fix calculation of LR address.
627 * armos.c (ARMul_OSHandleSWI): If a SWI vector has been installed
628 and a SWI is not handled by the simulator, pass the SWI off to the
629 vector, otherwise issue a warning message and continue.
631 * armsupp.c (ARMul_CPSRAltered): Set S bit aswell.
633 * thumbemu.c: Add v5 instruction simulation.
634 * armemu.c: Add v5, XScale and El Segundo instruction simulation.
636 * armcopro.c: Add XScale co-processor emulation.
637 * armemu.h: Add exported XScale co-processor functions.
641 * armdefs.h: Rename StrongARM property to v4_ARM and add v5 ARM
642 property. Delete unnecessary processor names.
643 (ARM_Strong_Prop): Delete.
647 (State): Delete is_StrongARM boolean. Add is_v4 and is_v5
650 * armemu.h (BUSUSEDINCPCS): Use is_v4 boolean.
651 (BUSUSEDINCPCN): Use is_v4 boolean.
653 * arminit.c (ARMul_NewState): Initialise is_v4 and is_v5 fields.
654 (ARMul_SelectProcessor): Change second parameter from 'processor'
655 to 'properties'. Set is_v4 and is_v5 booleans in State.
657 * armrdi.c: Remove use of ARM processor names. Replace with ARM
658 processor properties.
660 * wrapper.c (sim_create_inferior): Choose properties passed to
661 ARMul_SelectProcessor based on machine number.
665 * armemu.c (LHPOSTDOWN): Compute write back value before
666 performing load in case the offset register is overwritten.
671 * wrapper.c (sim_create_inferior): Fix typo in the previous patch.
675 * wrapper.c (sim_create_inferior): Reset mode to ARM when creating a
680 * armvirt.c (ABORTS): Do not define.
682 * armdefs.h (struct ARMul_State): Add is_StrongARM.
683 (ARM_Strong_Prop, STRONGARM): Define.
684 * arminit.c (ARMul_NewState): Reset is_StrongARM.
685 (ARMul_SelectProcessor): Set is_StrongARM.
686 * wrapper.c (sim_create_inferior): Use bfd machine type to
687 determine processor type to emulate.
688 * armemu.h (BUSUSEDINCPCS, BUSUSEDINCPCN): Don't increment PC
689 when emulating StrongARM.
691 * armemu.c (ARMul_Emulate, t_undefined): Proceed to next insn.
693 * armemu.h (INSN_SIZE): New macro.
694 (SET_ABORT): Save CPSR in SPSR and set LR.
695 * armemu.c (ARMul_Emulate, isize): Set to INSN_SIZE.
696 (WriteR15, WriteSR15): Do not discard bit 1 in Thumb mode.
697 * arminit.c (ARMul_Abort): Use new SETABORT and INSN_SIZE.
699 * armemu.c (LoadSMult): Use WriteR15() to discard the least
700 significant bits of PC.
702 * armemu.h (WRITEDESTB): New macro.
703 * armemu.c (ARMul_Emulate26, bl): Use WriteR15Branch() to
704 modify PC. Moved the existing logic...
705 (WriteR15Branch): ... here. New function.
706 (WriteR15, WriteSR15): Drop the two least significant bits.
707 (LoadSMult): Use WriteR15Branch() to modify PC.
708 (LoadMult): Use WRITEDESTB() instead of WRITEDEST().
710 * armemu.h (GETSPSR): Call ARMul_GetSPSR().
711 * armsupp.c (ARMul_CPSRAltered): Zero out bits as they're
712 extracted from state->Cpsr, but preserve the unused bits.
713 (ARMul_GetCPSR): Get bits preserved in state->Cpsr.
714 (ARMul_GetSPSR, ARMul_FixCPSR): Use ARMul_GetCPSR() to
715 get the full CPSR word.
717 * armemu.h (PSR_FBITS, PSR_SBITS, PSR_XBITS, PSR_CBITS): New.
718 (SETPSR_F, SETPSR_S, SETPSR_X, SETPSR_C): New macros.
719 (SETPSR, SET_INTMODE, SETCC): Removed.
720 * armsupp.c (ARMul_FixCPSR, ARMul_FixSPSR): Do not test bit
721 mask. Use SETPSR_* to modify PSR.
722 (ARMul_SetCPSR): Load all bits from value.
723 * armemu.c (ARMul_Emulate, msr): Do not test bit mask.
725 * armemu.c (ARMul_Emulate): Compute writeback value before
726 loading, since the offset register may be the destination
729 * armdefs.h (SYSTEMBANK): Define as USERBANK.
730 * armsupp.c (ARMul_SwitchMode): Remove SYSTEMBANK cases.
734 * armemu.c (Multiply64): Fix computation of flag N.
736 * armemu.c (MultiplyAdd64): Fix computation of flag N.
740 * armemu.h (NEGBRANCH): Do not overwrite the two most significant
745 * armcopro.c (MMUMCR): Only indicate mode change if a singal has
747 (MMUWrite): Only indicate mode change if a singal has really
750 * armdefs.h (SYSTEMMODE): Define.
751 (BANK_CAN_ACEESS_SPSR): Define.
753 * armemu.c (ARM_Emulate26): If the mode has changed allow the PC
754 to advance before stopping the emulation.
756 * arminit.c (ARMul_Reset): Ensure Mode field of State is set
759 * armos.c (ARMul_OSInit): Create a initial stack pointer for
762 * armsupp.c (ModeToBank): Remove unused first parameter.
763 Add support for System Mode.
764 (ARMul_GetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
765 (ARMul_SetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
766 (ARMul_FixSPSR): Use BANK_CAN_ACCESS_SPSR macro.
767 (ARMulSwitchMode): Add support for System Mode.
771 * configure: Regenerated to track ../common/aclocal.m4 changes.
775 * wrapper.c (sim_store_register): Special handling for CPSR
780 * armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
785 * wrapper.c (sim_open,sim_close): Copy into myname, free myname.
789 * wrapper.c: Fix compile time warning messages.
790 * armcopro.c: Fix compile time warning messages.
791 * armdefs.h: Fix compile time warning messages.
792 * armemu.c: Fix compile time warning messages.
793 * armemu.h: Fix compile time warning messages.
794 * armos.c: Fix compile time warning messages.
795 * armsupp.c: Fix compile time warning messages.
796 * armvirt.c: Fix compile time warning messages.
797 * bag.c: Fix compile time warning messages.
801 * *.[ch]: Use indent to make readable.
805 * armos.c (SWIread): Generate an error message if a huge read is
807 (SWIwrite): Generate an error message if a huge write is
812 * thumbemu.c (ARMul_ThumbDecode): Accept 0xbebe as a thumb
817 * armos.c (SWIopen): Always pass third parameter with 0666 since
818 otherwise uninitialized memory gets access if the O_CREAT bit is
819 set and so we possibly cannot access the file afterwards.
823 * armos.c (SWIWrite0): Send output to stdout instead of stderr.
824 (ARMul_OSHandleSWI, case SWI_WriteC,AngelSWI_Reason_WriteC): Ditto.
828 * configure: Regenerated to track ../common/aclocal.m4 changes.
832 * configure: Regenerated to track ../common/aclocal.m4 changes.
836 * wrapper.c (stop_simulator): New global.
837 (sim_stop): Set sim state to STOP and set
839 (sim_resume): Reset stop_simulator.
840 (sim_stop_reason): If stop_simulator is set, tell gdb
841 that the we took SIGINT.
842 * armemu.c (ARMul_Emulate26): Don't loop forever. Stop if
843 stop_simulator is set.
847 * armemu.c (ARMul_Emulate26): If NEED_UI_LOOP_HOOK, call ui_loop_hook
848 whenever the counter expires.
849 * Makefile.in (SIM_EXTRA_CFLAGS): Include define NEED_UI_LOOP_HOOK.
853 * armemu.c (ARMul_Emulate26): Handle new breakpoint value.
854 * thumbemu.c (ARMul_ThumbDecode): Handle new breakpoint value.
858 * wrapper.c (sim_open): Set endianness according to BFD or command
861 * tconfig.in: Define SIM_HAVE_BIENDIAN.
865 * armemu.c (Multiply64): Test for Rm (rather than Rs) not being
866 the same as either RdHi or RdLo.
870 * armos.c (ARMul_OSHandleSWI: AngelSWI_Reason_ReportException):
871 Set Reg[0] based on reason for for the exception.
875 * armos.c (SWIwrite0): New function.
876 (WriteCommandLineTo): New function.
877 (SWIopen): New function.
878 (SWIread): New function.
879 (SWIwrite): New function.
880 (SWIflen): New function.
881 (ARMul_OSHandleSWI): Call new functions instead of handling
883 (ARMul_OSHandleSWI): Handle Angel SWIs correctly.
884 (*): Reformat spacing to be a bit more GNUly.
885 Most code taken from a patch by Anthony Thompson
890 * armos.h: Add Angel SWI and its reason codes.
891 * armos.c (ARMul_OSHandleSWI): Ignore Angel SWIs (for now).
895 * armos.c (ARMul_OSHandleSWI::SWI_Open): Handle special case
896 of ":tt" to catch stdin in addition to stdout.
897 (ARMul_OSHandleSWI::SWI_Seek): Return 0 or 1 to indicate failure
898 or success of lseek().
902 * armos.c (ARMul_OSHandleSWI): Special case code to catch attempts
907 * armos.c (ARMul_OSHandleSWI): Added code for SWI_Clock,
908 SWI_Flen, and SWI_Time. Also fixed SWI_Seek code to only
909 seek from offset 0 and not to use R2 for whence since it is
910 not passed as part of the SWI call.
914 * configure: Regenerated to track ../common/aclocal.m4 changes.
916 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
918 * configure: Regenerated to track ../common/aclocal.m4 changes.
923 * acconfig.h: New file.
924 * configure.in: Reverted change of Apr 24; use sinclude again.
926 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
928 * configure: Regenerated to track ../common/aclocal.m4 changes.
933 * configure.in: Don't call sinclude.
937 * configure: Regenerated to track ../common/aclocal.m4 changes.
941 * configure: Regenerated to track ../common/aclocal.m4 changes.
945 * configure: Regenerated to track ../common/aclocal.m4 changes.
949 * configure: Regenerated to track ../common/aclocal.m4 changes.
953 * armopts.h: Remove definition of LITTLEND - it is not used.
957 * wrapper.c (sim_store_register, sim_fetch_register): Pass in
958 length parameter. Return -1.
962 * configure: Regenerated to track ../common/aclocal.m4 changes.
966 * configure: Regenerated to track ../common/aclocal.m4 changes.
968 Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
970 * configure: Regenerated to track ../common/aclocal.m4 changes.
974 * configure: Regenerated to track ../common/aclocal.m4 changes.
979 * Makefile.in: Updated with changes from branch.
981 * armemu.c: ditto these changes
982 * armemu.h: ditto add support for
983 * armos.c: ditto the Thumb instruction
984 * armsupp.c: ditto set and the new v4
985 * armvirt.c: ditto architecture.
987 * thumbemu.c: New file from branch.
992 * configure: Regenerated to track ../common/aclocal.m4 changes.
996 * armos.c (ARMul_OSHandleSWI): Add support for GetEnv SWI. Patch
999 * wrapper.c (sim_create_inferior): Add code to create an execution
1004 * wrapper.c (sim_load): Pass lma_p and sim_write args to
1009 * configure: Regenerated to track ../common/aclocal.m4 changes.
1013 * configure: Regenerated to track ../common/aclocal.m4 changes.
1017 * configure: Regenerated to track ../common/aclocal.m4 changes.
1021 * configure: Regenerated to track ../common/aclocal.m4 changes.
1025 * configure: Regenerated to track ../common/aclocal.m4 changes.
1029 * configure: Regenerated to track ../common/aclocal.m4 changes.
1031 Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
1033 * configure: Regenerated to track ../common/aclocal.m4 changes.
1037 * configure: Regenerated to track ../common/aclocal.m4 changes.
1042 * wrapper.c (sim_kill): Delete.
1043 (sim_create_inferior): Add ABFD argument.
1044 (sim_load): Move setting of PC from here.
1045 (sim_create_inferior): To here.
1049 * configure: Regenerated to track ../common/aclocal.m4 changes.
1054 * wrapper.c (sim_open): Add ABFD argument.
1058 * wrapper.c (sim_open): Add callback argument.
1059 (sim_set_callbacks): Drop SIM_DESC argument.
1063 * configure: Regenerated to track ../common/aclocal.m4 changes.
1067 * wrapper.c (sim_stop): Stub sim_stop function.
1071 * arminit.c (ARMul_NewState): Preinitialize the state to
1076 * Makefile.in (SIM_OBJS): Add sim-load.o.
1077 * wrapper.c (sim_kind,myname): New static locals.
1078 (sim_open): Set sim_kind, myname.
1079 (sim_load): Call sim_load_file to do work. Set start address from bfd.
1080 (sim_create_inferior): Return SIM_RC. Delete start_address arg.
1084 * wrapper.c (sim_trace): Update so that it matches prototype.
1088 * configure: Regenerated to track ../common/aclocal.m4 changes.
1093 * Makefile.in (armemu32.o): Replace $< with autoconf recommended
1095 (armemu26.o): Ditto.
1099 * wrapper.c (sim_open): New arg `kind'.
1101 * configure: Regenerated to track ../common/aclocal.m4 changes.
1105 * COPYING: Update FSF address.
1109 * configure: Regenerated to track ../common/aclocal.m4 changes.
1113 * configure: Regenerated to track ../common/aclocal.m4 changes.
1117 * configure: Re-generate.
1121 * configure: Regenerate to track ../common/aclocal.m4 changes.
1125 * wrapper.c (sim_open): Has result now.
1126 (sim_*): New SIM_DESC argument.
1130 * Makefile.in (@COMMON_MAKEFILE_FRAG@): Use
1131 COMMON_{PRE,POST}_CONFIG_FRAG instead.
1132 * configure.in: sinclude ../common/aclocal.m4.
1133 * configure: Regenerated.
1137 * configure configure.in Makefile.in: Update to new configure
1138 scheme which is more compatible with WinGDB builds.
1139 * configure.in: Improve comment on how to run autoconf.
1140 * configure: Re-run autoconf to get new ../common/aclocal.m4.
1141 * Makefile.in: Use autoconf substitution to install common
1146 * run.c: Deleted, use one in ../common now.
1147 * Makefile.in: Delete everything that's been moved to
1148 ../common/Make-common.in.
1150 * configure.in: Simplify using macros in ../common/aclocal.m4.
1151 * configure: Regenerated.
1152 * config.in: New file.
1153 * armos.c: #include config.h.
1154 * wrapper.c (mem_size): Value is in bytes now.
1155 (sim_callback): New global.
1156 (arm_sim_set_profile{,_size}): Delete.
1157 (arm_sim_set_mem_size): Rename to sim_size.
1158 (sim_do_command): Call printf_filtered via callback.
1159 (sim_set_callbacks): Record callback.
1163 * Makefile.in (mostlyclean): Remove config.log.
1167 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
1168 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
1170 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
1171 (AC_PROG_INSTALL): Added.
1172 * configure: Rebuilt.
1176 * configure: Regenerate with autoconf 2.7.
1180 * run.c (main): Use new bfd_big_endian macro.
1184 * run.c: Include "getopt.h".
1186 (usage): Make static.
1187 (main): Call arm_sim_set_verbosity.
1188 Only load sections marked SEC_LOAD.
1189 * wrapper.c (mem_size, verbosity): New static global.
1190 (arm_sim_set_mem_size): Renamed from sim_size. Callers updated.
1191 (arm_sim_set_profile{,_size}): Renamed from sim_foo. Callers updated.
1195 * armdefs.h (ARMul_State): New member `verbose'.
1196 * armrdi.c (ARMul_ConsolePrint): Add missing va_end.
1197 * run.c (verbose): Make global.
1198 * wrapper.c (init): Set state->verbose.
1199 (ARMul_ConsolePrint): Don't print anything if !verbose.
1203 * armos.c: #include dbg_rdi.h.
1204 (ARMul_OSHandleSWI): Handle SWI_Breakpoint.
1205 * armos.h (SWI_Breakpoint): Define.
1206 * wrapper.c: #include armemu.h, dbg_rdi.h.
1208 (sim_resume): Use state->EndCondition to record stop state.
1209 Call FLUSHPIPE before returning.
1210 (sim_stop_reason): Determine reason from state->EndCondition.
1214 * wrapper.c (sim_set_callbacks): New.
1218 * armos.c (ARMul_OSHandleSWI): Result of read/write calls is
1219 number of bytes not read/written (or -1).
1223 * Makefile.in (maintainer-clean): New synonym for realclean.
1227 * configure.in: Remove AC_PROG_INSTALL.
1228 * configure: Rebuild.
1229 * Makefile.in (INSTALL): Revert to using install.sh.
1230 (INSTALL_PROGRAM, INSTALL_DATA): Set to $(INSTALL).
1231 (INSTALL_XFORM, INSTALL_XFORM1): Restore.
1232 (mostlyclean): Make the same as clean, not distclean.
1233 (clean): Remove config.log.
1234 (install): Don't install in $(tooldir).
1238 (Try to) Update to new bfd autoconf scheme.
1239 * run.c: Don't include sysdep.h.
1240 * Makefile.in (INSTALL{,_PROGRAM,_DATA}): Use autoconf computed value.
1241 (CC, CFLAGS, AR, RANLIB): Likewise.
1242 (HDEFINES, TDEFINES): Define.
1243 (CC_FOR_BUILD): Delete.
1244 (host_makefile_frag): Delete.
1245 (Makefile): Don't depend on frags.
1246 * configure.in (sysdep.h): Don't create symlink.
1247 (host_makefile_frag, frags): Deleted.
1248 (CC, CFLAGS, AR, RANLIB, INSTALL): Compute values.
1249 * configure: Regenerated.
1253 * Update all FSF addresses except those in COPYING* files.
1257 * Makefile.in (clean): Remove run, libsim.a.
1259 * Makefile.in, configure.in: converted to autoconf.
1260 * configure: New file, generated with autconf 2.4.
1266 * wrapper.c (sim_do_command): New function.
1270 * armos.c (ARMul_OSHandleSWI): New version to work with
1275 * run.c (main): Grab return value from right register.