mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 10:05:29 +00:00
Contributed by Will Schmidt <will_schmidt@vnet.ibm.com>
This includes updates and adjustments as suggested by Carl.
Add tests that exercise PCRelative instructions.
These instructions are encoded with R==1, which indicate that
the memory accessed by the instruction is at a location
relative to the currently executing instruction.
These tests are built using -Wl,-text and -Wl,-bss
options to ensure the location of the target array is at a
location with a specific offset from the currently
executing instruction.
The write instructions are aimed at a large buffer in
the bss section; which is checked for updates at the
completion of each test.
In order to ensure consistent output across assorted
systems, the tests have been padded with ori, nop instructions
and align directives.
Detailed changes:
* Makefile.am: Add test_isa_3_1_R1_RT and test_isa_3_1_R1_XT tests.
* isa_3_1_helpers.h: Add identify_instruction_by_func_name() helper function
to indicate if the test is for R==1.
Add helpers to initialize and print changes to the pcrelative_write_target
array.
Add #define to help pad code with a series of eyecatcher ORI instructions.
* test_isa_3_1_R1_RT.c: New test.
* test_isa_3_1_R1_XT.c: New test.
* test_isa_3_1_R1_XT.stdout.exp: New expected output.
* test_isa_3_1_R1_XT.stdout.exp: New expected output.
* test_isa_3_1_R1_RT.stderr.exp: New expected output.
* test_isa_3_1_R1_RT.stderr.exp: New expected output.
* test_isa_3_1_R1_RT.vgtest: New test handler.
* test_isa_3_1_R1_XT.vgtest: New test handler.
* test_isa_3_1_common.c: Add indicators (updates_byte,updates_halfword,
updates_word) indicators to control the output from the R==1 tests.
Add helper check for "_R1" to indicate if instruction is coded with R==1.
Add init and print helpers for the pcrelative_write_target array.
128 lines
4.6 KiB
Plaintext
128 lines
4.6 KiB
Plaintext
plfd 0_R1 =>_ -4.903986e+55 _ cb80000006100000, 0
|
|
|
|
plfd 4_R1 =>_ 3.095878e+167 _ 62b50015cb800004, 0
|
|
|
|
plfd 8_R1 =>_ 1.297320e+168 _ 62d6001662b50015, 0
|
|
|
|
plfd 16_R1 =>_ 2.264413e+169 _ 6318001862f70017, 0
|
|
|
|
plfd 32_R1 =>_ 6.763045e+171 _ 639c001c637b001b, 0
|
|
|
|
plfd 64_R1 =>_ 6.763045e+171 _ 639c001c637b001b, 0
|
|
|
|
plfs 0_R1 =>_ 2.708339e-35 _ 38c2000000000000, 0
|
|
|
|
plfs 4_R1 =>_ -2.560001e+02 _ c070000080000000, 0
|
|
|
|
plfs 8_R1 =>_ 1.669433e+21 _ 4456a002a0000000, 0
|
|
|
|
plfs 16_R1 =>_ 2.278176e+21 _ 445ee002e0000000, 0
|
|
|
|
plfs 32_R1 =>_ 4.630140e+21 _ 446f600360000000, 0
|
|
|
|
plfs 64_R1 =>_ 4.630140e+21 _ 446f600360000000, 0
|
|
|
|
plxsd 0_R1 => a800000004100000,0000000000000000 -5.07588375e-116 +Zero
|
|
|
|
plxsd 4_R1 => 7000000a8000004,0000000000000000 5.77662562e-275 +Zero
|
|
|
|
plxsd 8_R1 => 700000060000000,0000000000000000 5.77662407e-275 +Zero
|
|
|
|
plxsd 16_R1 => 7000000,0000000000000000 +Den +Zero
|
|
|
|
plxsd 32_R1 => 6339001963180018,0000000000000000 9.43505226e+169 +Zero
|
|
|
|
plxsd 64_R1 => 6339001963180018,0000000000000000 9.43505226e+169 +Zero
|
|
|
|
plxssp 0_R1 => 3882000000000000,0000000000000000 6.19888e-05 +Zero +Zero +Zero
|
|
|
|
plxssp 4_R1 => bd80000080000000,0000000000000000 -6.25000e-02 -Zero +Zero +Zero
|
|
|
|
plxssp 8_R1 => 38e0000000000000,0000000000000000 1.06812e-04 +Zero +Zero +Zero
|
|
|
|
plxssp 16_R1 => 38e0000000000000,0000000000000000 1.06812e-04 +Zero +Zero +Zero
|
|
|
|
plxssp 32_R1 => 445ac002c0000000,0000000000000000 8.75000e+02 -2.00000e+00 +Zero +Zero
|
|
|
|
plxssp 64_R1 => 446b400340000000,0000000000000000 9.41000e+02 2.00000e+00 +Zero +Zero
|
|
|
|
plxv 0_R1 => c800000004100000 7000000
|
|
|
|
plxv 4_R1 => 7000000c8000004 700000000000000
|
|
|
|
plxv 8_R1 => 7000000 7000000
|
|
|
|
plxv 16_R1 => 7000000 7000000
|
|
|
|
pstfd 0_R1 43dfe000003fe000 43eff000000ff000 => e000003fe00043df
|
|
pstfd 0_R1 43eff000000ff000 43efefffffcff000 => f000000ff00043ef
|
|
|
|
pstfd 4_R1 43dfe000003fe000 43eff000000ff000 => e000003f e00043df
|
|
pstfd 4_R1 43eff000000ff000 43efefffffcff000 => f000000f f00043ef
|
|
|
|
pstfd 8_R1 43dfe000003fe000 43eff000000ff000 => e000003fe00043df
|
|
pstfd 8_R1 43eff000000ff000 43efefffffcff000 => f000000ff00043ef
|
|
|
|
pstfd 16_R1 43dfe000003fe000 43eff000000ff000 => e000003fe00043df
|
|
pstfd 16_R1 43eff000000ff000 43efefffffcff000 => f000000ff00043ef
|
|
|
|
pstfd 32_R1 43dfe000003fe000 43eff000000ff000 => e000003fe00043df
|
|
pstfd 32_R1 43eff000000ff000 43efefffffcff000 => f000000ff00043ef
|
|
|
|
pstfs 0_R1 000000005eff0000 000000005f7f8000 => 00005eff
|
|
pstfs 0_R1 000000005f7f8000 000000005f7f8000 => 80005f7f
|
|
|
|
pstfs 4_R1 000000005eff0000 000000005f7f8000 => 00005eff
|
|
pstfs 4_R1 000000005f7f8000 000000005f7f8000 => 80005f7f
|
|
|
|
pstfs 8_R1 000000005eff0000 000000005f7f8000 => 00005eff
|
|
pstfs 8_R1 000000005f7f8000 000000005f7f8000 => 80005f7f
|
|
|
|
pstfs 16_R1 000000005eff0000 000000005f7f8000 => 00005eff
|
|
pstfs 16_R1 000000005f7f8000 000000005f7f8000 => 80005f7f
|
|
|
|
pstfs 32_R1 000000005eff0000 000000005f7f8000 => 00005eff
|
|
pstfs 32_R1 000000005f7f8000 000000005f7f8000 => 80005f7f
|
|
|
|
pstxsd 0_R1 => 0000000000000000
|
|
|
|
pstxsd 4_R1 => 00000000 00000000
|
|
|
|
pstxsd 8_R1 => 0000000000000000
|
|
|
|
pstxsd 16_R1 => 0000000000000000
|
|
|
|
pstxsd 32_R1 => 0000000000000000
|
|
|
|
pstxsd 64_R1 => 0000000000000000
|
|
|
|
pstxssp 0_R1 => 00000000
|
|
|
|
pstxssp 4_R1 => 00000000
|
|
|
|
pstxssp 8_R1 => 00000000
|
|
|
|
pstxssp 16_R1 => 00000000
|
|
|
|
pstxssp 32_R1 => 00000000
|
|
|
|
pstxssp 64_R1 => 00000000
|
|
|
|
pstxvp off0_R1 0180055e0180077e 0080000e8080000e ff7ffffe7f7ffffe ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80 077e0180055e0180 000e8080000e0080
|
|
|
|
pstxvp off16_R1 0180055e0180077e 0080000e8080000e ff7ffffe7f7ffffe ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80 077e0180055e0180 000e8080000e0080
|
|
|
|
pstxvp off32_R1 0180055e0180077e 0080000e8080000e ff7ffffe7f7ffffe ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80 077e0180055e0180 000e8080000e0080
|
|
|
|
pstxvp off48_R1 0180055e0180077e 0080000e8080000e ff7ffffe7f7ffffe ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80 077e0180055e0180 000e8080000e0080
|
|
|
|
pstxv 0_R1 ff7ffffe7f7ffffe,ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80
|
|
|
|
pstxv 4_R1 ff7ffffe7f7ffffe,ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80
|
|
|
|
pstxv 8_R1 ff7ffffe7f7ffffe,ff8000007f800000 => fffe7f7ffffeff7f 00007f800000ff80
|
|
|
|
pstxv 16_R1 ff7ffffe7f7ffffe,ff8000007f800000 => fffe7f7f fffeff7f00007f80 0000ff80
|
|
|
|
All done. Tested 58 different instruction groups
|