; ARM CPU simulator support. -*- Scheme -*- ; Copyright (C) 2000 Red Hat, Inc. ; This file is part of CGEN. ; See file COPYING.CGEN for details. ; N.B. ; - The format of this file is *extremely* wip! ; - This isn't intended to be simulator independent, it is an application ; specific file and not all simulator apps are equivalent. ; - This file is loaded after all the .cpu files are loaded. ; ??? The application (e.g. simulator) may wish to do further processing when ; the tbit is set. For a C++ simulator what one would want to do is override ; the "set" method. That presumes there's a "set" method to override and ; that all affected code uses it. There are several to accomplish this. ; The first way to accomplish this is to have all code always ; access hardware elements through their get/set methods. Perhaps ok, ; but also maybe overkill. The second is to specify those that use get/set ; methods. One could do this for elements that have get/set specs, but this ; requires the .cpu file to get it right (and to change when it isn't). ; A variant of the second is to move this info to an application specific ; file (much like what .opc files are although even they have the problem of ; requiring collaboration with the .cpu file. -- to be fixed!). ; The solution taken here is the latter. ; The h-tbit and h-mbits registers need extra processing when they are set. ; This is done by specifying the FUN-SET attribute, which causes all machine ; generated references to go through the `set' access method. ; Oh no, not FUN-ACCESS again! :-) (modify-hardware (name h-tbit) (add-attrs FUN-SET) ) (modify-hardware (name h-mbits) (add-attrs FUN-SET) )