Release Candidate #1 for version 14.00 now available

Started by Pelle, March 15, 2026, 06:39:56 PM

Previous topic - Next topic

Pelle

/Pelle

TimoVJL

#1
Thanks for new version for testing.

Windows 7 SP1 with an old AMD CPU without MOVBE:

poide crash
ModLoad: 00000001`3f7c0000 00000001`3fb5c000   poide.exe
...
ModLoad: 000007fe`e2bc0000 000007fe`e2bec000   C:\code\PellesC14rc1\Bin\Wizards64\wininst.dll
(8964.84dc): Illegal instruction - code c000001d (first chance)
(8964.84dc): Unknown exception - code c000041d (!!! second chance !!!)
*** WARNING: Unable to verify checksum for poide.exe
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for poide.exe -
poide!WizScanForDependenciesA+0xe2846:
00000001`3f293d46 660f38f1442430  movbe   word ptr [rsp+30h],ax ss:00000000`009eebd0=0000

polink crash
ModLoad: 00000001`3f8f0000 00000001`3f935000   image00000001`3f8f0000

...
(8958.8a30): Illegal instruction - code c000001d (first chance)
(8958.8a30): Illegal instruction - code c000001d (!!! second chance !!!)
*** WARNING: Unable to verify checksum for image00000001`3f8f0000
*** ERROR: Module load completed but symbols could not be loaded for image00000001`3f8f0000
image00000001_3f8f0000+0x1984:
00000001`3f8f1984 0f38f14608      movbe   dword ptr [rsi+8],eax ds:00000000`00222220=baadf00d
polib fail
Building zlib.lib.
POLIB: fatal error: An internal error occurred.

https://uops.info/html-instr/MOVBE_R32_M32.html

Incompatible CPU
AMD Athlon(tm) II X2 220 Processor
Intel Core i5-2450M CPU


https://en.wikipedia.org/wiki/Jaguar_(microarchitecture)

Not sure, if this detect MOVBE
#include <intrin.h>

void __cdecl exit(int status);
int printf(const char * restrict format, ...);

#pragma comment(lib, "msvcrt.lib")
//#pragma comment(linker,"/subsystem:console,5.1")
void __cdecl mainCRTStartup(void)
{
    int __cdecl main(void);
    void __cdecl exit(int status);
    exit(main());
}

// CPUID.(EAX=01H, ECX=0H):ECX.MOVBE[bit 22]
// EAX, EBX, ECX and EDX
//  0,   1,   2,      3
int GetCPUFeature(void)
{
    int r[4];    // EAX, EBX, ECX and EDX
    int rc = 0;
    _cpuid(r, 0);    // Highest Function Parameter and Manufacturer ID
    if (r[0] != 0x500) {    //
        _cpuid(r, 1);    // Processor Info and Feature Bits
        rc = _bittest((const long int *)&r[2], 22);

    }

    return rc;
}

int main(void)
{
    printf("CPU options: %d\n", GetCPUFeature());
    exit(0);
}
May the source be with you

Vortex

Hi Pelle,

Thanks for the new release. Poide is crashing on Windows 7 Sp1.
Code it... That's all...

Pelle

Well, the movbe instruction is rather old. Hard to find the complete history and origin, but possibly from ~2013.
I have hold back some progress for years, due to certain old processors, but I'm getting fed up with that. In a perfect world I rather drop X86/X64 and move permanently to ARM64. Or better yet: find another project to waste time on. We'll see...
/Pelle

John Z

Quote from: Pelle on March 15, 2026, 06:39:56 PMSee https://www.pellesc.se/, Download and Changes.


Thanks very much!

John Z

P.S. ARM64 will be a good challenge as will finding testers. I think currently a general population of users is a few percent, for high end systems it is reportedly approaching 10% mainly due to high performance snapdragon systems.  AI supplied numbers  :(  Of course that neglects about 1 billion device in phones . . . .

Vortex

To check if your processor supports MOVBE, run Coreinfo on the command prompt :

Coreinfo64.exe -f
Check the output of the tool to see if MOVBE is supported :

MOVBE           *       Supports MOVBE instruction
https://learn.microsoft.com/en-us/sysinternals/downloads/coreinfo
Code it... That's all...

TimoVJL

#6
Hopefully users test new version and don't wait release version.
I try to test Windows 7 with new version, but every PC's CPUs are problem.
Windows 10 and 11 test PCs should not having any problems.
Pelles C support testing other versions with -x -xml poide commandline options.

May the source be with you

John Z

Tested on Window 7 Pro, DELL 64 bit (still get security updates)

Install seemed ok, however poide would not start even enough to show a window.
Didn't see it running in the background either.
poview worked.

DEL optiplex 780 Intel Core Duo E8400 release date 2008

John Z

Update: Tested on Win 11 Home 24H2 HP, was successful, installed and built vcardz_i program fine.

Vortex

I think processors dating back to 2012\2013 are supporting the movbe instruction.
Code it... That's all...

TimoVJL

#9
https://uops.info/html-instr/MOVBE_R32_M32.html
Long history.

Intel Bonnel 2008 - 2013
Silvermont 2013 -
Airmont 2015 -
AMD Zen+ 2018 -


EDIT: Check_MOVBE2 show Vendor and Brand too.
May the source be with you

John Z

Nice work Timo - results on two Windows 7 systems -

DELL windows 7 Pro
GenuineIntel
Intel(R) Core(TM) Duo CPU  E8400 @ 3.00Ghz

MOVBE not supported


Sony Laptop windows 7 Home
GenuineIntel
Intel(R) Core(TM) Duo CPU  T6600 @ 2.20Ghz

MOVBE not supported


👍

John Z

Vortex

Hi Timo,

Thanks for the new tool. My result :

MOVBE not supported
Code it... That's all...

TimoVJL

I wish that users test this release candidate and don't wait release version, as happened before.

It is possible to install release candidate to own folder and after that use it with -x -xml commandline.
After that, remove registry setting before using an older Pelles C poide.

Also useful to make a zip of Pelles C folder for testing it in different PCs.

May the source be with you