Merge branch 'bugfix/p4_rvfp_rom' into 'master'

fix(esp_rom): fixed float to int conversion functions not working on P4

Closes IDF-8977 and IDF-8109

See merge request espressif/esp-idf!28396
This commit is contained in:
Marius Vikhammer 2024-01-24 10:10:57 +08:00
commit 7823d246c5
3 changed files with 14 additions and 6 deletions

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -16,15 +16,21 @@
/***************************************
Group rvfplibdf
***************************************/
/*
* These functions cannot work when compiling with floating point ABI
* implementation assumes argument is passed in a0, but floats will be passed
* in the floating point registers instead
*
* __fixsfdi = 0x4fc00878;
* __fixunssfdi = 0x4fc00880;
*/
/* Functions */
__adddf3 = 0x4fc00868;
__eqdf2 = 0x4fc0086c;
__fixdfdi = 0x4fc00870;
__fixdfsi = 0x4fc00874;
__fixsfdi = 0x4fc00878;
__fixunsdfsi = 0x4fc0087c;
__fixunssfdi = 0x4fc00880;
__floatdidf = 0x4fc00884;
__floatsidf = 0x4fc00888;
__floatundidf = 0x4fc0088c;
@ -41,6 +47,10 @@ __subdf3 = 0x4fc008ac;
Group libgcc
***************************************/
/* Not part of the orginal ROM interface, but RVFP versions cannot work with float-abi */
__fixsfdi = 0x4fc007ac;
__fixunssfdi = 0x4fc007b4;
/* Functions */
__absvdi2 = 0x4fc0073c;
__absvsi2 = 0x4fc00740;

View File

@ -9,6 +9,3 @@ components/esp_rom/test_apps/rom_tests:
- if: IDF_TARGET in ["esp32", "esp32c2"]
temporary: false
reason: lack of memory for testing miniz compressing
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8977

View File

@ -10,6 +10,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_esp_rom(dut: Dut) -> None:
dut.run_all_single_board_cases()