diff --git a/src/xenia/cpu/ppc/testing/README.md b/src/xenia/cpu/ppc/testing/README.md index e35adf40c..7bb2f52e2 100644 --- a/src/xenia/cpu/ppc/testing/README.md +++ b/src/xenia/cpu/ppc/testing/README.md @@ -5,25 +5,29 @@ runner. Each test is structured as a source `[name].s` PPC assembly file and the generated outputs. The outputs are made using the custom build of binutils -setup when `xenia-build setup` is called and are checked in to make it easier +setup when `xenia-build gentests` is called and are checked in to make it easier to run the tests on Windows. Tests are run using the `xenia-test` app or via `xenia-build test`. ## Execution -The test binary is placed into memory at `0x82010000` and all other memory is -zeroed. +**On Xenia**: The test binary is placed into memory at `0x82010000` and all other +memory is zeroed. All registers are reset to zero. In order to provide useful inputs tests can -specify `# REGISTER_IN` values. +specify `#_ REGISTER_IN` values. -The code is jumped into at the starting address and executed until the last -instruction in the input file is reached. +The code is jumped into at the starting address and executed until a `blr` +instruction is encountered. -After all instructions complete any `# REGISTER_OUT` values are checked and if +After all instructions complete any `#_ REGISTER_OUT` values are checked and if they do not match the test is failed. +## Registers + +All registers **except lr, r1, and r13** are available for usage by tests. + ## Annotations Annotations can appear at any line in a file. If a number is required it can @@ -32,21 +36,21 @@ be in either hex or decimal form, or IEEE if floating-point. ### REGISTER_IN ``` -# REGISTER_IN [register name] [register value] +#_ REGISTER_IN [register name] [register value] ``` Sets the value of a register prior to executing the instructions. Examples: ``` -# REGISTER_IN r4 0x1234 -# REGISTER_IN r4 5678 +#_ REGISTER_IN r4 0x1234 +#_ REGISTER_IN r4 5678 ``` ### REGISTER_OUT ``` -# REGISTER_OUT [register name] [register value] +#_ REGISTER_OUT [register name] [register value] ``` Defines the expected register value when the instructions have executed. @@ -55,7 +59,7 @@ the value given here the test will fail. Examples: ``` -# REGISTER_OUT r3 123 +#_ REGISTER_OUT r3 123 ``` TODO: memory setup/assertions diff --git a/src/xenia/cpu/ppc/testing/instr_vpkd3d128.s b/src/xenia/cpu/ppc/testing/instr_vpkd3d128.s index c366b3ab2..7156dc4a7 100644 --- a/src/xenia/cpu/ppc/testing/instr_vpkd3d128.s +++ b/src/xenia/cpu/ppc/testing/instr_vpkd3d128.s @@ -4,7 +4,7 @@ # 1 = PACK_TYPE_SHORT_2 # 2 = PACK_TYPE_2_10_10_10 # 3 = PACK_TYPE_FLOAT16_2 -# 4 = ? +# 4 = PACK_TYPE_SHORT_4 # 5 = PACK_TYPE_FLOAT16_4 # mask: # must not be zero