diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/citra_qt/main.cpp | 2 | ||||
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfp.cpp | 12 | ||||
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfp.h | 2 | ||||
| -rw-r--r-- | src/core/arm/skyeye_common/vfp/vfpdouble.cpp | 76 | ||||
| -rw-r--r-- | src/core/loader/3dsx.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/debug_utils/debug_utils.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/rasterizer.cpp | 8 |
7 files changed, 55 insertions, 55 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index bf010a2ba..038bfa07d 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp | |||
| @@ -240,7 +240,7 @@ void GMainWindow::OnDisplayTitleBars(bool show) | |||
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | void GMainWindow::BootGame(const std::string& filename) { | 242 | void GMainWindow::BootGame(const std::string& filename) { |
| 243 | LOG_INFO(Frontend, "Citra starting...\n"); | 243 | LOG_INFO(Frontend, "Citra starting..."); |
| 244 | 244 | ||
| 245 | // Shutdown previous session if the emu thread is still active... | 245 | // Shutdown previous session if the emu thread is still active... |
| 246 | if (emu_thread != nullptr) | 246 | if (emu_thread != nullptr) |
diff --git a/src/core/arm/skyeye_common/vfp/vfp.cpp b/src/core/arm/skyeye_common/vfp/vfp.cpp index 0537135e2..a27a7e194 100644 --- a/src/core/arm/skyeye_common/vfp/vfp.cpp +++ b/src/core/arm/skyeye_common/vfp/vfp.cpp | |||
| @@ -113,26 +113,26 @@ void VMOVR(ARMul_State* state, u32 single, u32 d, u32 m) | |||
| 113 | /* Miscellaneous functions */ | 113 | /* Miscellaneous functions */ |
| 114 | s32 vfp_get_float(ARMul_State* state, unsigned int reg) | 114 | s32 vfp_get_float(ARMul_State* state, unsigned int reg) |
| 115 | { | 115 | { |
| 116 | LOG_TRACE(Core_ARM11, "VFP get float: s%d=[%08x]\n", reg, state->ExtReg[reg]); | 116 | LOG_TRACE(Core_ARM11, "VFP get float: s%d=[%08x]", reg, state->ExtReg[reg]); |
| 117 | return state->ExtReg[reg]; | 117 | return state->ExtReg[reg]; |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | void vfp_put_float(ARMul_State* state, s32 val, unsigned int reg) | 120 | void vfp_put_float(ARMul_State* state, s32 val, unsigned int reg) |
| 121 | { | 121 | { |
| 122 | LOG_TRACE(Core_ARM11, "VFP put float: s%d <= [%08x]\n", reg, val); | 122 | LOG_TRACE(Core_ARM11, "VFP put float: s%d <= [%08x]", reg, val); |
| 123 | state->ExtReg[reg] = val; | 123 | state->ExtReg[reg] = val; |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | u64 vfp_get_double(ARMul_State* state, unsigned int reg) | 126 | u64 vfp_get_double(ARMul_State* state, unsigned int reg) |
| 127 | { | 127 | { |
| 128 | u64 result = ((u64) state->ExtReg[reg*2+1])<<32 | state->ExtReg[reg*2]; | 128 | u64 result = ((u64) state->ExtReg[reg*2+1])<<32 | state->ExtReg[reg*2]; |
| 129 | LOG_TRACE(Core_ARM11, "VFP get double: s[%d-%d]=[%016llx]\n", reg * 2 + 1, reg * 2, result); | 129 | LOG_TRACE(Core_ARM11, "VFP get double: s[%d-%d]=[%016llx]", reg * 2 + 1, reg * 2, result); |
| 130 | return result; | 130 | return result; |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | void vfp_put_double(ARMul_State* state, u64 val, unsigned int reg) | 133 | void vfp_put_double(ARMul_State* state, u64 val, unsigned int reg) |
| 134 | { | 134 | { |
| 135 | LOG_TRACE(Core_ARM11, "VFP put double: s[%d-%d] <= [%08x-%08x]\n", reg * 2 + 1, reg * 2, (u32)(val >> 32), (u32)(val & 0xffffffff)); | 135 | LOG_TRACE(Core_ARM11, "VFP put double: s[%d-%d] <= [%08x-%08x]", reg * 2 + 1, reg * 2, (u32)(val >> 32), (u32)(val & 0xffffffff)); |
| 136 | state->ExtReg[reg*2] = (u32) (val & 0xffffffff); | 136 | state->ExtReg[reg*2] = (u32) (val & 0xffffffff); |
| 137 | state->ExtReg[reg*2+1] = (u32) (val>>32); | 137 | state->ExtReg[reg*2+1] = (u32) (val>>32); |
| 138 | } | 138 | } |
| @@ -142,10 +142,10 @@ void vfp_put_double(ARMul_State* state, u64 val, unsigned int reg) | |||
| 142 | */ | 142 | */ |
| 143 | void vfp_raise_exceptions(ARMul_State* state, u32 exceptions, u32 inst, u32 fpscr) | 143 | void vfp_raise_exceptions(ARMul_State* state, u32 exceptions, u32 inst, u32 fpscr) |
| 144 | { | 144 | { |
| 145 | LOG_TRACE(Core_ARM11, "VFP: raising exceptions %08x\n", exceptions); | 145 | LOG_TRACE(Core_ARM11, "VFP: raising exceptions %08x", exceptions); |
| 146 | 146 | ||
| 147 | if (exceptions == VFP_EXCEPTION_ERROR) { | 147 | if (exceptions == VFP_EXCEPTION_ERROR) { |
| 148 | LOG_CRITICAL(Core_ARM11, "unhandled bounce %x\n", inst); | 148 | LOG_CRITICAL(Core_ARM11, "unhandled bounce %x", inst); |
| 149 | Crash(); | 149 | Crash(); |
| 150 | } | 150 | } |
| 151 | 151 | ||
diff --git a/src/core/arm/skyeye_common/vfp/vfp.h b/src/core/arm/skyeye_common/vfp/vfp.h index 88908da9f..60a63e6de 100644 --- a/src/core/arm/skyeye_common/vfp/vfp.h +++ b/src/core/arm/skyeye_common/vfp/vfp.h | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ | 23 | #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ |
| 24 | 24 | ||
| 25 | #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested\n", __FUNCTION__); | 25 | #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested", __FUNCTION__); |
| 26 | #define CHECK_VFP_ENABLED | 26 | #define CHECK_VFP_ENABLED |
| 27 | #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); | 27 | #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); |
| 28 | 28 | ||
diff --git a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp index 857e6ce45..45914d479 100644 --- a/src/core/arm/skyeye_common/vfp/vfpdouble.cpp +++ b/src/core/arm/skyeye_common/vfp/vfpdouble.cpp | |||
| @@ -65,7 +65,7 @@ static struct vfp_double vfp_double_default_qnan = { | |||
| 65 | 65 | ||
| 66 | static void vfp_double_dump(const char *str, struct vfp_double *d) | 66 | static void vfp_double_dump(const char *str, struct vfp_double *d) |
| 67 | { | 67 | { |
| 68 | LOG_TRACE(Core_ARM11, "VFP: %s: sign=%d exponent=%d significand=%016llx\n", | 68 | LOG_TRACE(Core_ARM11, "VFP: %s: sign=%d exponent=%d significand=%016llx", |
| 69 | str, d->sign != 0, d->exponent, d->significand); | 69 | str, d->sign != 0, d->exponent, d->significand); |
| 70 | } | 70 | } |
| 71 | 71 | ||
| @@ -155,7 +155,7 @@ u32 vfp_double_normaliseround(ARMul_State* state, int dd, struct vfp_double *vd, | |||
| 155 | } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vd->sign != 0)) | 155 | } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vd->sign != 0)) |
| 156 | incr = (1ULL << (VFP_DOUBLE_LOW_BITS + 1)) - 1; | 156 | incr = (1ULL << (VFP_DOUBLE_LOW_BITS + 1)) - 1; |
| 157 | 157 | ||
| 158 | LOG_TRACE(Core_ARM11, "VFP: rounding increment = 0x%08llx\n", incr); | 158 | LOG_TRACE(Core_ARM11, "VFP: rounding increment = 0x%08llx", incr); |
| 159 | 159 | ||
| 160 | /* | 160 | /* |
| 161 | * Is our rounding going to overflow? | 161 | * Is our rounding going to overflow? |
| @@ -210,7 +210,7 @@ pack: | |||
| 210 | vfp_double_dump("pack: final", vd); | 210 | vfp_double_dump("pack: final", vd); |
| 211 | { | 211 | { |
| 212 | s64 d = vfp_double_pack(vd); | 212 | s64 d = vfp_double_pack(vd); |
| 213 | LOG_TRACE(Core_ARM11, "VFP: %s: d(d%d)=%016llx exceptions=%08x\n", func, | 213 | LOG_TRACE(Core_ARM11, "VFP: %s: d(d%d)=%016llx exceptions=%08x", func, |
| 214 | dd, d, exceptions); | 214 | dd, d, exceptions); |
| 215 | vfp_put_double(state, d, dd); | 215 | vfp_put_double(state, d, dd); |
| 216 | } | 216 | } |
| @@ -267,28 +267,28 @@ vfp_propagate_nan(struct vfp_double *vdd, struct vfp_double *vdn, | |||
| 267 | */ | 267 | */ |
| 268 | static u32 vfp_double_fabs(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 268 | static u32 vfp_double_fabs(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 269 | { | 269 | { |
| 270 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 270 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 271 | vfp_put_double(state, vfp_double_packed_abs(vfp_get_double(state, dm)), dd); | 271 | vfp_put_double(state, vfp_double_packed_abs(vfp_get_double(state, dm)), dd); |
| 272 | return 0; | 272 | return 0; |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | static u32 vfp_double_fcpy(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 275 | static u32 vfp_double_fcpy(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 276 | { | 276 | { |
| 277 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 277 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 278 | vfp_put_double(state, vfp_get_double(state, dm), dd); | 278 | vfp_put_double(state, vfp_get_double(state, dm), dd); |
| 279 | return 0; | 279 | return 0; |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | static u32 vfp_double_fneg(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 282 | static u32 vfp_double_fneg(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 283 | { | 283 | { |
| 284 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 284 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 285 | vfp_put_double(state, vfp_double_packed_negate(vfp_get_double(state, dm)), dd); | 285 | vfp_put_double(state, vfp_double_packed_negate(vfp_get_double(state, dm)), dd); |
| 286 | return 0; | 286 | return 0; |
| 287 | } | 287 | } |
| 288 | 288 | ||
| 289 | static u32 vfp_double_fsqrt(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 289 | static u32 vfp_double_fsqrt(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 290 | { | 290 | { |
| 291 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 291 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 292 | vfp_double vdm, vdd, *vdp; | 292 | vfp_double vdm, vdd, *vdp; |
| 293 | int ret, tm; | 293 | int ret, tm; |
| 294 | 294 | ||
| @@ -383,7 +383,7 @@ static u32 vfp_compare(ARMul_State* state, int dd, int signal_on_qnan, int dm, u | |||
| 383 | s64 d, m; | 383 | s64 d, m; |
| 384 | u32 ret = 0; | 384 | u32 ret = 0; |
| 385 | 385 | ||
| 386 | LOG_TRACE(Core_ARM11, "In %s, state=0x%p, fpscr=0x%x\n", __FUNCTION__, state, fpscr); | 386 | LOG_TRACE(Core_ARM11, "In %s, state=0x%p, fpscr=0x%x", __FUNCTION__, state, fpscr); |
| 387 | m = vfp_get_double(state, dm); | 387 | m = vfp_get_double(state, dm); |
| 388 | if (vfp_double_packed_exponent(m) == 2047 && vfp_double_packed_mantissa(m)) { | 388 | if (vfp_double_packed_exponent(m) == 2047 && vfp_double_packed_mantissa(m)) { |
| 389 | ret |= FPSCR_CFLAG | FPSCR_VFLAG; | 389 | ret |= FPSCR_CFLAG | FPSCR_VFLAG; |
| @@ -438,32 +438,32 @@ static u32 vfp_compare(ARMul_State* state, int dd, int signal_on_qnan, int dm, u | |||
| 438 | ret |= FPSCR_CFLAG; | 438 | ret |= FPSCR_CFLAG; |
| 439 | } | 439 | } |
| 440 | } | 440 | } |
| 441 | LOG_TRACE(Core_ARM11, "In %s, state=0x%p, ret=0x%x\n", __FUNCTION__, state, ret); | 441 | LOG_TRACE(Core_ARM11, "In %s, state=0x%p, ret=0x%x", __FUNCTION__, state, ret); |
| 442 | 442 | ||
| 443 | return ret; | 443 | return ret; |
| 444 | } | 444 | } |
| 445 | 445 | ||
| 446 | static u32 vfp_double_fcmp(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 446 | static u32 vfp_double_fcmp(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 447 | { | 447 | { |
| 448 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 448 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 449 | return vfp_compare(state, dd, 0, dm, fpscr); | 449 | return vfp_compare(state, dd, 0, dm, fpscr); |
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | static u32 vfp_double_fcmpe(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 452 | static u32 vfp_double_fcmpe(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 453 | { | 453 | { |
| 454 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 454 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 455 | return vfp_compare(state, dd, 1, dm, fpscr); | 455 | return vfp_compare(state, dd, 1, dm, fpscr); |
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | static u32 vfp_double_fcmpz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 458 | static u32 vfp_double_fcmpz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 459 | { | 459 | { |
| 460 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 460 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 461 | return vfp_compare(state, dd, 0, VFP_REG_ZERO, fpscr); | 461 | return vfp_compare(state, dd, 0, VFP_REG_ZERO, fpscr); |
| 462 | } | 462 | } |
| 463 | 463 | ||
| 464 | static u32 vfp_double_fcmpez(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 464 | static u32 vfp_double_fcmpez(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 465 | { | 465 | { |
| 466 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 466 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 467 | return vfp_compare(state, dd, 1, VFP_REG_ZERO, fpscr); | 467 | return vfp_compare(state, dd, 1, VFP_REG_ZERO, fpscr); |
| 468 | } | 468 | } |
| 469 | 469 | ||
| @@ -474,7 +474,7 @@ static u32 vfp_double_fcvts(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 474 | int tm; | 474 | int tm; |
| 475 | u32 exceptions = 0; | 475 | u32 exceptions = 0; |
| 476 | 476 | ||
| 477 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 477 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 478 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); | 478 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); |
| 479 | 479 | ||
| 480 | tm = vfp_double_type(&vdm); | 480 | tm = vfp_double_type(&vdm); |
| @@ -516,7 +516,7 @@ static u32 vfp_double_fuito(ARMul_State* state, int dd, int unused, int dm, u32 | |||
| 516 | struct vfp_double vdm; | 516 | struct vfp_double vdm; |
| 517 | u32 m = vfp_get_float(state, dm); | 517 | u32 m = vfp_get_float(state, dm); |
| 518 | 518 | ||
| 519 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 519 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 520 | vdm.sign = 0; | 520 | vdm.sign = 0; |
| 521 | vdm.exponent = 1023 + 63 - 1; | 521 | vdm.exponent = 1023 + 63 - 1; |
| 522 | vdm.significand = (u64)m; | 522 | vdm.significand = (u64)m; |
| @@ -529,7 +529,7 @@ static u32 vfp_double_fsito(ARMul_State* state, int dd, int unused, int dm, u32 | |||
| 529 | struct vfp_double vdm; | 529 | struct vfp_double vdm; |
| 530 | u32 m = vfp_get_float(state, dm); | 530 | u32 m = vfp_get_float(state, dm); |
| 531 | 531 | ||
| 532 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 532 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 533 | vdm.sign = (m & 0x80000000) >> 16; | 533 | vdm.sign = (m & 0x80000000) >> 16; |
| 534 | vdm.exponent = 1023 + 63 - 1; | 534 | vdm.exponent = 1023 + 63 - 1; |
| 535 | vdm.significand = vdm.sign ? (~m + 1) : m; | 535 | vdm.significand = vdm.sign ? (~m + 1) : m; |
| @@ -544,7 +544,7 @@ static u32 vfp_double_ftoui(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 544 | int rmode = fpscr & FPSCR_RMODE_MASK; | 544 | int rmode = fpscr & FPSCR_RMODE_MASK; |
| 545 | int tm; | 545 | int tm; |
| 546 | 546 | ||
| 547 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 547 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 548 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); | 548 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); |
| 549 | 549 | ||
| 550 | /* | 550 | /* |
| @@ -605,7 +605,7 @@ static u32 vfp_double_ftoui(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 605 | } | 605 | } |
| 606 | } | 606 | } |
| 607 | 607 | ||
| 608 | LOG_TRACE(Core_ARM11, "VFP: ftoui: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); | 608 | LOG_TRACE(Core_ARM11, "VFP: ftoui: d(s%d)=%08x exceptions=%08x", sd, d, exceptions); |
| 609 | 609 | ||
| 610 | vfp_put_float(state, d, sd); | 610 | vfp_put_float(state, d, sd); |
| 611 | 611 | ||
| @@ -614,7 +614,7 @@ static u32 vfp_double_ftoui(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 614 | 614 | ||
| 615 | static u32 vfp_double_ftouiz(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) | 615 | static u32 vfp_double_ftouiz(ARMul_State* state, int sd, int unused, int dm, u32 fpscr) |
| 616 | { | 616 | { |
| 617 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 617 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 618 | return vfp_double_ftoui(state, sd, unused, dm, FPSCR_ROUND_TOZERO); | 618 | return vfp_double_ftoui(state, sd, unused, dm, FPSCR_ROUND_TOZERO); |
| 619 | } | 619 | } |
| 620 | 620 | ||
| @@ -625,7 +625,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 625 | int rmode = fpscr & FPSCR_RMODE_MASK; | 625 | int rmode = fpscr & FPSCR_RMODE_MASK; |
| 626 | int tm; | 626 | int tm; |
| 627 | 627 | ||
| 628 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 628 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 629 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); | 629 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); |
| 630 | vfp_double_dump("VDM", &vdm); | 630 | vfp_double_dump("VDM", &vdm); |
| 631 | 631 | ||
| @@ -682,7 +682,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 682 | } | 682 | } |
| 683 | } | 683 | } |
| 684 | 684 | ||
| 685 | LOG_TRACE(Core_ARM11, "VFP: ftosi: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); | 685 | LOG_TRACE(Core_ARM11, "VFP: ftosi: d(s%d)=%08x exceptions=%08x", sd, d, exceptions); |
| 686 | 686 | ||
| 687 | vfp_put_float(state, (s32)d, sd); | 687 | vfp_put_float(state, (s32)d, sd); |
| 688 | 688 | ||
| @@ -691,7 +691,7 @@ static u32 vfp_double_ftosi(ARMul_State* state, int sd, int unused, int dm, u32 | |||
| 691 | 691 | ||
| 692 | static u32 vfp_double_ftosiz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) | 692 | static u32 vfp_double_ftosiz(ARMul_State* state, int dd, int unused, int dm, u32 fpscr) |
| 693 | { | 693 | { |
| 694 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 694 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 695 | return vfp_double_ftosi(state, dd, unused, dm, FPSCR_ROUND_TOZERO); | 695 | return vfp_double_ftosi(state, dd, unused, dm, FPSCR_ROUND_TOZERO); |
| 696 | } | 696 | } |
| 697 | 697 | ||
| @@ -775,7 +775,7 @@ u32 vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn,struct vfp_dou | |||
| 775 | 775 | ||
| 776 | if (vdn->significand & (1ULL << 63) || | 776 | if (vdn->significand & (1ULL << 63) || |
| 777 | vdm->significand & (1ULL << 63)) { | 777 | vdm->significand & (1ULL << 63)) { |
| 778 | LOG_INFO(Core_ARM11, "VFP: bad FP values in %s\n", __func__); | 778 | LOG_INFO(Core_ARM11, "VFP: bad FP values in %s", __func__); |
| 779 | vfp_double_dump("VDN", vdn); | 779 | vfp_double_dump("VDN", vdn); |
| 780 | vfp_double_dump("VDM", vdm); | 780 | vfp_double_dump("VDM", vdm); |
| 781 | } | 781 | } |
| @@ -843,7 +843,7 @@ vfp_double_multiply(struct vfp_double *vdd, struct vfp_double *vdn, | |||
| 843 | */ | 843 | */ |
| 844 | if (vdn->exponent < vdm->exponent) { | 844 | if (vdn->exponent < vdm->exponent) { |
| 845 | std::swap(vdm, vdn); | 845 | std::swap(vdm, vdn); |
| 846 | LOG_TRACE(Core_ARM11, "VFP: swapping M <-> N\n"); | 846 | LOG_TRACE(Core_ARM11, "VFP: swapping M <-> N"); |
| 847 | } | 847 | } |
| 848 | 848 | ||
| 849 | vdd->sign = vdn->sign ^ vdm->sign; | 849 | vdd->sign = vdn->sign ^ vdm->sign; |
| @@ -927,7 +927,7 @@ vfp_double_multiply_accumulate(ARMul_State* state, int dd, int dn, int dm, u32 f | |||
| 927 | */ | 927 | */ |
| 928 | static u32 vfp_double_fmac(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) | 928 | static u32 vfp_double_fmac(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) |
| 929 | { | 929 | { |
| 930 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 930 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 931 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, 0, "fmac"); | 931 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, 0, "fmac"); |
| 932 | } | 932 | } |
| 933 | 933 | ||
| @@ -936,7 +936,7 @@ static u32 vfp_double_fmac(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 936 | */ | 936 | */ |
| 937 | static u32 vfp_double_fnmac(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) | 937 | static u32 vfp_double_fnmac(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) |
| 938 | { | 938 | { |
| 939 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 939 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 940 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_MULTIPLY, "fnmac"); | 940 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_MULTIPLY, "fnmac"); |
| 941 | } | 941 | } |
| 942 | 942 | ||
| @@ -945,7 +945,7 @@ static u32 vfp_double_fnmac(ARMul_State* state, int dd, int dn, int dm, u32 fpsc | |||
| 945 | */ | 945 | */ |
| 946 | static u32 vfp_double_fmsc(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) | 946 | static u32 vfp_double_fmsc(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) |
| 947 | { | 947 | { |
| 948 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 948 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 949 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_SUBTRACT, "fmsc"); | 949 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_SUBTRACT, "fmsc"); |
| 950 | } | 950 | } |
| 951 | 951 | ||
| @@ -954,7 +954,7 @@ static u32 vfp_double_fmsc(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 954 | */ | 954 | */ |
| 955 | static u32 vfp_double_fnmsc(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) | 955 | static u32 vfp_double_fnmsc(ARMul_State* state, int dd, int dn, int dm, u32 fpscr) |
| 956 | { | 956 | { |
| 957 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 957 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 958 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_SUBTRACT | NEG_MULTIPLY, "fnmsc"); | 958 | return vfp_double_multiply_accumulate(state, dd, dn, dm, fpscr, NEG_SUBTRACT | NEG_MULTIPLY, "fnmsc"); |
| 959 | } | 959 | } |
| 960 | 960 | ||
| @@ -966,7 +966,7 @@ static u32 vfp_double_fmul(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 966 | struct vfp_double vdd, vdn, vdm; | 966 | struct vfp_double vdd, vdn, vdm; |
| 967 | u32 exceptions; | 967 | u32 exceptions; |
| 968 | 968 | ||
| 969 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 969 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 970 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); | 970 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); |
| 971 | if (vdn.exponent == 0 && vdn.significand) | 971 | if (vdn.exponent == 0 && vdn.significand) |
| 972 | vfp_double_normalise_denormal(&vdn); | 972 | vfp_double_normalise_denormal(&vdn); |
| @@ -987,7 +987,7 @@ static u32 vfp_double_fnmul(ARMul_State* state, int dd, int dn, int dm, u32 fpsc | |||
| 987 | struct vfp_double vdd, vdn, vdm; | 987 | struct vfp_double vdd, vdn, vdm; |
| 988 | u32 exceptions; | 988 | u32 exceptions; |
| 989 | 989 | ||
| 990 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 990 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 991 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); | 991 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); |
| 992 | if (vdn.exponent == 0 && vdn.significand) | 992 | if (vdn.exponent == 0 && vdn.significand) |
| 993 | vfp_double_normalise_denormal(&vdn); | 993 | vfp_double_normalise_denormal(&vdn); |
| @@ -1010,7 +1010,7 @@ static u32 vfp_double_fadd(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 1010 | struct vfp_double vdd, vdn, vdm; | 1010 | struct vfp_double vdd, vdn, vdm; |
| 1011 | u32 exceptions; | 1011 | u32 exceptions; |
| 1012 | 1012 | ||
| 1013 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 1013 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 1014 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); | 1014 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); |
| 1015 | if (vdn.exponent == 0 && vdn.significand) | 1015 | if (vdn.exponent == 0 && vdn.significand) |
| 1016 | vfp_double_normalise_denormal(&vdn); | 1016 | vfp_double_normalise_denormal(&vdn); |
| @@ -1032,7 +1032,7 @@ static u32 vfp_double_fsub(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 1032 | struct vfp_double vdd, vdn, vdm; | 1032 | struct vfp_double vdd, vdn, vdm; |
| 1033 | u32 exceptions; | 1033 | u32 exceptions; |
| 1034 | 1034 | ||
| 1035 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 1035 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 1036 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); | 1036 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); |
| 1037 | if (vdn.exponent == 0 && vdn.significand) | 1037 | if (vdn.exponent == 0 && vdn.significand) |
| 1038 | vfp_double_normalise_denormal(&vdn); | 1038 | vfp_double_normalise_denormal(&vdn); |
| @@ -1060,7 +1060,7 @@ static u32 vfp_double_fdiv(ARMul_State* state, int dd, int dn, int dm, u32 fpscr | |||
| 1060 | u32 exceptions = 0; | 1060 | u32 exceptions = 0; |
| 1061 | int tm, tn; | 1061 | int tm, tn; |
| 1062 | 1062 | ||
| 1063 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 1063 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 1064 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); | 1064 | vfp_double_unpack(&vdn, vfp_get_double(state, dn), &fpscr); |
| 1065 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); | 1065 | vfp_double_unpack(&vdm, vfp_get_double(state, dm), &fpscr); |
| 1066 | 1066 | ||
| @@ -1185,7 +1185,7 @@ u32 vfp_double_cpdo(ARMul_State* state, u32 inst, u32 fpscr) | |||
| 1185 | unsigned int vecitr, veclen, vecstride; | 1185 | unsigned int vecitr, veclen, vecstride; |
| 1186 | struct op *fop; | 1186 | struct op *fop; |
| 1187 | 1187 | ||
| 1188 | LOG_TRACE(Core_ARM11, "In %s\n", __FUNCTION__); | 1188 | LOG_TRACE(Core_ARM11, "In %s", __FUNCTION__); |
| 1189 | vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)); | 1189 | vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)); |
| 1190 | 1190 | ||
| 1191 | fop = (op == FOP_EXT) ? &fops_ext[FEXT_TO_IDX(inst)] : &fops[FOP_TO_IDX(op)]; | 1191 | fop = (op == FOP_EXT) ? &fops_ext[FEXT_TO_IDX(inst)] : &fops[FOP_TO_IDX(op)]; |
| @@ -1216,7 +1216,7 @@ u32 vfp_double_cpdo(ARMul_State* state, u32 inst, u32 fpscr) | |||
| 1216 | else | 1216 | else |
| 1217 | veclen = fpscr & FPSCR_LENGTH_MASK; | 1217 | veclen = fpscr & FPSCR_LENGTH_MASK; |
| 1218 | 1218 | ||
| 1219 | LOG_TRACE(Core_ARM11, "VFP: vecstride=%u veclen=%u\n", vecstride, | 1219 | LOG_TRACE(Core_ARM11, "VFP: vecstride=%u veclen=%u", vecstride, |
| 1220 | (veclen >> FPSCR_LENGTH_BIT) + 1); | 1220 | (veclen >> FPSCR_LENGTH_BIT) + 1); |
| 1221 | 1221 | ||
| 1222 | if (!fop->fn) { | 1222 | if (!fop->fn) { |
| @@ -1230,16 +1230,16 @@ u32 vfp_double_cpdo(ARMul_State* state, u32 inst, u32 fpscr) | |||
| 1230 | 1230 | ||
| 1231 | type = (fop->flags & OP_SD) ? 's' : 'd'; | 1231 | type = (fop->flags & OP_SD) ? 's' : 'd'; |
| 1232 | if (op == FOP_EXT) | 1232 | if (op == FOP_EXT) |
| 1233 | LOG_TRACE(Core_ARM11, "VFP: itr%d (%c%u) = op[%u] (d%u)\n", | 1233 | LOG_TRACE(Core_ARM11, "VFP: itr%d (%c%u) = op[%u] (d%u)", |
| 1234 | vecitr >> FPSCR_LENGTH_BIT, | 1234 | vecitr >> FPSCR_LENGTH_BIT, |
| 1235 | type, dest, dn, dm); | 1235 | type, dest, dn, dm); |
| 1236 | else | 1236 | else |
| 1237 | LOG_TRACE(Core_ARM11, "VFP: itr%d (%c%u) = (d%u) op[%u] (d%u)\n", | 1237 | LOG_TRACE(Core_ARM11, "VFP: itr%d (%c%u) = (d%u) op[%u] (d%u)", |
| 1238 | vecitr >> FPSCR_LENGTH_BIT, | 1238 | vecitr >> FPSCR_LENGTH_BIT, |
| 1239 | type, dest, dn, FOP_TO_IDX(op), dm); | 1239 | type, dest, dn, FOP_TO_IDX(op), dm); |
| 1240 | 1240 | ||
| 1241 | except = fop->fn(state, dest, dn, dm, fpscr); | 1241 | except = fop->fn(state, dest, dn, dm, fpscr); |
| 1242 | LOG_TRACE(Core_ARM11, "VFP: itr%d: exceptions=%08x\n", | 1242 | LOG_TRACE(Core_ARM11, "VFP: itr%d: exceptions=%08x", |
| 1243 | vecitr >> FPSCR_LENGTH_BIT, except); | 1243 | vecitr >> FPSCR_LENGTH_BIT, except); |
| 1244 | 1244 | ||
| 1245 | exceptions |= except; | 1245 | exceptions |= except; |
diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index 111b6a409..8eed6a50a 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp | |||
| @@ -181,14 +181,14 @@ static THREEDSX_Error Load3DSXFile(FileUtil::IOFile& file, u32 base_addr, Shared | |||
| 181 | 181 | ||
| 182 | for (unsigned current_inprogress = 0; current_inprogress < remaining && pos < end_pos; current_inprogress++) { | 182 | for (unsigned current_inprogress = 0; current_inprogress < remaining && pos < end_pos; current_inprogress++) { |
| 183 | const auto& table = reloc_table[current_inprogress]; | 183 | const auto& table = reloc_table[current_inprogress]; |
| 184 | LOG_TRACE(Loader, "(t=%d,skip=%u,patch=%u)\n", current_segment_reloc_table, | 184 | LOG_TRACE(Loader, "(t=%d,skip=%u,patch=%u)", current_segment_reloc_table, |
| 185 | (u32)table.skip, (u32)table.patch); | 185 | (u32)table.skip, (u32)table.patch); |
| 186 | pos += table.skip; | 186 | pos += table.skip; |
| 187 | s32 num_patches = table.patch; | 187 | s32 num_patches = table.patch; |
| 188 | while (0 < num_patches && pos < end_pos) { | 188 | while (0 < num_patches && pos < end_pos) { |
| 189 | u32 in_addr = (u8*)pos - program_image.data(); | 189 | u32 in_addr = (u8*)pos - program_image.data(); |
| 190 | u32 addr = TranslateAddr(*pos, &loadinfo, offsets); | 190 | u32 addr = TranslateAddr(*pos, &loadinfo, offsets); |
| 191 | LOG_TRACE(Loader, "Patching %08X <-- rel(%08X,%d) (%08X)\n", | 191 | LOG_TRACE(Loader, "Patching %08X <-- rel(%08X,%d) (%08X)", |
| 192 | base_addr + in_addr, addr, current_segment_reloc_table, *pos); | 192 | base_addr + in_addr, addr, current_segment_reloc_table, *pos); |
| 193 | switch (current_segment_reloc_table) { | 193 | switch (current_segment_reloc_table) { |
| 194 | case 0: | 194 | case 0: |
diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp index aa1f1484c..f1cfa9361 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp | |||
| @@ -641,7 +641,7 @@ void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { | |||
| 641 | // Initialize write structure | 641 | // Initialize write structure |
| 642 | png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); | 642 | png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); |
| 643 | if (png_ptr == nullptr) { | 643 | if (png_ptr == nullptr) { |
| 644 | LOG_ERROR(Debug_GPU, "Could not allocate write struct\n"); | 644 | LOG_ERROR(Debug_GPU, "Could not allocate write struct"); |
| 645 | goto finalise; | 645 | goto finalise; |
| 646 | 646 | ||
| 647 | } | 647 | } |
| @@ -649,13 +649,13 @@ void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { | |||
| 649 | // Initialize info structure | 649 | // Initialize info structure |
| 650 | info_ptr = png_create_info_struct(png_ptr); | 650 | info_ptr = png_create_info_struct(png_ptr); |
| 651 | if (info_ptr == nullptr) { | 651 | if (info_ptr == nullptr) { |
| 652 | LOG_ERROR(Debug_GPU, "Could not allocate info struct\n"); | 652 | LOG_ERROR(Debug_GPU, "Could not allocate info struct"); |
| 653 | goto finalise; | 653 | goto finalise; |
| 654 | } | 654 | } |
| 655 | 655 | ||
| 656 | // Setup Exception handling | 656 | // Setup Exception handling |
| 657 | if (setjmp(png_jmpbuf(png_ptr))) { | 657 | if (setjmp(png_jmpbuf(png_ptr))) { |
| 658 | LOG_ERROR(Debug_GPU, "Error during png creation\n"); | 658 | LOG_ERROR(Debug_GPU, "Error during png creation"); |
| 659 | goto finalise; | 659 | goto finalise; |
| 660 | } | 660 | } |
| 661 | 661 | ||
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp index 7abf60292..226fad783 100644 --- a/src/video_core/rasterizer.cpp +++ b/src/video_core/rasterizer.cpp | |||
| @@ -462,7 +462,7 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0, | |||
| 462 | } | 462 | } |
| 463 | 463 | ||
| 464 | default: | 464 | default: |
| 465 | LOG_ERROR(HW_GPU, "Unknown texture coordinate wrapping mode %x\n", (int)mode); | 465 | LOG_ERROR(HW_GPU, "Unknown texture coordinate wrapping mode %x", (int)mode); |
| 466 | UNIMPLEMENTED(); | 466 | UNIMPLEMENTED(); |
| 467 | return 0; | 467 | return 0; |
| 468 | } | 468 | } |
| @@ -541,7 +541,7 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0, | |||
| 541 | return combiner_output; | 541 | return combiner_output; |
| 542 | 542 | ||
| 543 | default: | 543 | default: |
| 544 | LOG_ERROR(HW_GPU, "Unknown color combiner source %d\n", (int)source); | 544 | LOG_ERROR(HW_GPU, "Unknown color combiner source %d", (int)source); |
| 545 | UNIMPLEMENTED(); | 545 | UNIMPLEMENTED(); |
| 546 | return {0, 0, 0, 0}; | 546 | return {0, 0, 0, 0}; |
| 547 | } | 547 | } |
| @@ -679,7 +679,7 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0, | |||
| 679 | return { (u8)result, (u8)result, (u8)result }; | 679 | return { (u8)result, (u8)result, (u8)result }; |
| 680 | } | 680 | } |
| 681 | default: | 681 | default: |
| 682 | LOG_ERROR(HW_GPU, "Unknown color combiner operation %d\n", (int)op); | 682 | LOG_ERROR(HW_GPU, "Unknown color combiner operation %d", (int)op); |
| 683 | UNIMPLEMENTED(); | 683 | UNIMPLEMENTED(); |
| 684 | return {0, 0, 0}; | 684 | return {0, 0, 0}; |
| 685 | } | 685 | } |
| @@ -716,7 +716,7 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0, | |||
| 716 | return (std::min(255, (input[0] + input[1])) * input[2]) / 255; | 716 | return (std::min(255, (input[0] + input[1])) * input[2]) / 255; |
| 717 | 717 | ||
| 718 | default: | 718 | default: |
| 719 | LOG_ERROR(HW_GPU, "Unknown alpha combiner operation %d\n", (int)op); | 719 | LOG_ERROR(HW_GPU, "Unknown alpha combiner operation %d", (int)op); |
| 720 | UNIMPLEMENTED(); | 720 | UNIMPLEMENTED(); |
| 721 | return 0; | 721 | return 0; |
| 722 | } | 722 | } |