GDBRegisterWithValue.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 24 Mar 2021 15:13:52 +0000
changeset 225 8bafbf291261
parent 144 342b6dfe3a6f
child 237 81a18c404314
permissions -rw-r--r--
Add `GDBRegisterWithValue >> #register`
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:libgdbs - GNU Debugger Interface Library
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
225
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
     4
Copyright (C) 2021 LabWare
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
This library is free software; you can redistribute it and/or
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
modify it under the terms of the GNU Lesser General Public
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
License as published by the Free Software Foundation; either
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
version 2.1 of the License. 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
This library is distributed in the hope that it will be useful,
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
but WITHOUT ANY WARRANTY; without even the implied warranty of
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
Lesser General Public License for more details.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
You should have received a copy of the GNU Lesser General Public
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
License along with this library; if not, write to the Free Software
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
"{ Package: 'jv:libgdbs' }"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
"{ NameSpace: Smalltalk }"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
GDBDebuggerObject subclass:#GDBRegisterWithValue
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	instanceVariableNames:'register frame value changed'
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	classVariableNames:''
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	poolDictionaries:''
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	category:'GDB-Core'
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!GDBRegisterWithValue class methodsFor:'documentation'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
copyright
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
jv:libgdbs - GNU Debugger Interface Library
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
Copyright (C) 2015-now Jan Vrany
225
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    37
Copyright (C) 2021 LabWare
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
This library is free software; you can redistribute it and/or
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
modify it under the terms of the GNU Lesser General Public
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
License as published by the Free Software Foundation; either
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
version 2.1 of the License. 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
This library is distributed in the hope that it will be useful,
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
but WITHOUT ANY WARRANTY; without even the implied warranty of
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
Lesser General Public License for more details.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
You should have received a copy of the GNU Lesser General Public
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
License along with this library; if not, write to the Free Software
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
!GDBRegisterWithValue class methodsFor:'accessing-magritte'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
descriptionContainer
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    ^ super descriptionContainer
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
        define: #number as: Integer;
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
        define: #value as: String;
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
        yourself
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    "Created: / 26-09-2018 / 10:38:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
!GDBRegisterWithValue methodsFor:'accessing'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
name
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    ^  register name
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    "Created: / 27-09-2018 / 10:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
number
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    ^ register isInteger ifTrue:[
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
        register
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    ] ifFalse:[
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
        register number
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    ]
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "Created: / 27-09-2018 / 09:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
225
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    84
register
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    85
    "Return the register definition of this register (as GDBRegister)"
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    86
    ^ register
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    87
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    88
    "Modified (comment): / 24-03-2021 / 15:13:22 / Jan Vrany <jan.vrany@labware.com>"
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    89
!
8bafbf291261 Add `GDBRegisterWithValue >> #register`
Jan Vrany <jan.vrany@labware.com>
parents: 144
diff changeset
    90
144
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
value
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    changed value.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    ^ value
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    "Modified: / 27-09-2018 / 15:26:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
!GDBRegisterWithValue methodsFor:'initialization'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
setDebugger: aGDBDebugger
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    super setDebugger: aGDBDebugger.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    changed := GDBTransientDataHolder debugger: debugger factory: [
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
        (frame notNil and:[frame isValid]) ifTrue:[
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
            | changes change |
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
            changes := frame registersChanges.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
            change := changes detect:[:each | each number = self number ] ifNone:[ nil ].
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
            (change notNil and:[change value ~= value]) ifTrue:[ 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
                value := change value.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
                true
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
            ] ifFalse:[ 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
                false
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
            ].
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
        ] ifFalse:[ 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
            false
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
        ].
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    ].
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
    "Created: / 27-09-2018 / 15:11:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
setFrame: aGDBFrame
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    self setDebugger: aGDBFrame debugger.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    frame := aGDBFrame.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    "Created: / 26-09-2018 / 22:25:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    "Modified: / 27-09-2018 / 15:31:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
setRegisterFrom: aDictionary
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
    self assert: register isInteger.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    self assert: (aDictionary includesKey: register).
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    register := aDictionary at: register.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    "Created: / 26-09-2018 / 10:41:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!GDBRegisterWithValue methodsFor:'printing & storing'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
printOn:aStream
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "append a printed representation of the receiver to the argument, aStream"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    super printOn:aStream.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    aStream nextPut:$(.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    register isInteger ifTrue:[
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
        register printOn:aStream.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    ] ifFalse:[ 
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
        register name printOn:aStream.    
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    ].
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    aStream nextPutAll: ': '.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    value printOn: aStream.
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    aStream nextPut:$).
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    "Modified: / 26-09-2018 / 10:48:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
!GDBRegisterWithValue methodsFor:'private'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
_number: anInteger
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    register := anInteger
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    "Created: / 26-09-2018 / 10:39:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
!GDBRegisterWithValue methodsFor:'queries'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
hasChanged
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    "Return true, if the value of this register has changed since last
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
     'stop', false otherwise (i.e., when unchanged)"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    ^ changed value
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    "Created: / 27-09-2018 / 16:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
!GDBRegisterWithValue class methodsFor:'documentation'!
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
version_HG
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    ^ '$Changeset: <not expanded> $'
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
! !
342b6dfe3a6f Add model for machine registers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183