60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
|
|
*** Keywords ***
|
||
|
|
Prepare Machine
|
||
|
|
Execute Command using sysbus
|
||
|
|
Execute Command mach create "ARM"
|
||
|
|
|
||
|
|
Execute Command machine LoadPlatformDescriptionFromString "rom: Memory.MappedMemory @ sysbus 0x0 { size: 0x1000 }"
|
||
|
|
Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.ARMv7A @ sysbus { cpuType: \\"cortex-a9\\" }"
|
||
|
|
|
||
|
|
Execute Command cpu PC 0x0
|
||
|
|
|
||
|
|
Thumb State Should Be Equal
|
||
|
|
[Arguments] ${state}
|
||
|
|
${cpsr}= Execute Command cpu GetRegister 25
|
||
|
|
${t}= Evaluate bool(${cpsr.strip()} & (1<<5))
|
||
|
|
Should Be Equal As Strings ${t} ${state}
|
||
|
|
|
||
|
|
Load Program
|
||
|
|
# nop (ARM)
|
||
|
|
Execute Command sysbus WriteDoubleWord 0x00000000 0xe1a00000
|
||
|
|
# blx 0xc
|
||
|
|
Execute Command sysbus WriteDoubleWord 0x00000004 0xfa000000
|
||
|
|
# nop (ARM)
|
||
|
|
Execute Command sysbus WriteDoubleWord 0x00000008 0xe1a00000
|
||
|
|
# 2x nop (Thumb)
|
||
|
|
Execute Command sysbus WriteDoubleWord 0x0000000c 0x46c046c0
|
||
|
|
# nop; bx lr (Thumb)
|
||
|
|
Execute Command sysbus WriteDoubleWord 0x00000010 0x477046c0
|
||
|
|
|
||
|
|
*** Test Cases ***
|
||
|
|
Should Expose Thumb State In CPSR
|
||
|
|
Prepare Machine
|
||
|
|
Load Program
|
||
|
|
|
||
|
|
PC Should Be Equal 0x00000000
|
||
|
|
Thumb State Should Be Equal False
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x00000004
|
||
|
|
Thumb State Should Be Equal False
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x0000000c
|
||
|
|
Thumb State Should Be Equal True
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x0000000e
|
||
|
|
Thumb State Should Be Equal True
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x00000010
|
||
|
|
Thumb State Should Be Equal True
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x000000012
|
||
|
|
Thumb State Should Be Equal True
|
||
|
|
|
||
|
|
Execute Command cpu Step 1
|
||
|
|
PC Should Be Equal 0x00000008
|
||
|
|
Thumb State Should Be Equal False
|