Andy Vandijck Posted January 31, 2015 Share Posted January 31, 2015 carlo_67 use cpu FX ))) oh... :-/ Bronzovka, could you take a look as I'm currently busy with creating something (paid work) for a developer in Poland? Diff is also attached above... Link to comment Share on other sites More sharing options...
Bronya Posted January 31, 2015 Share Posted January 31, 2015 oh... :-/ Bronzovka, could you take a look as I'm currently busy with creating something (paid work) for a developer in Poland? Diff is also attached above... Yes ! I need use free time ! My hard disk in crash ... I need recovery =))) Maybe today try =)) I'm not in Poland . ) Link to comment Share on other sites More sharing options...
Andy Vandijck Posted January 31, 2015 Share Posted January 31, 2015 Yes ! I need use free time ! My hard disk in crash ... I need recovery =))) Maybe today try =)) I'm not in Poland . ) That sucks. I've had that some times. That's why I switched to SSD. Better boot times too 1 Link to comment Share on other sites More sharing options...
Bronya Posted January 31, 2015 Share Posted January 31, 2015 AnV , this panic - this function ud_insn_hex . This strange ... That's why I switched to SSD. Better boot times too I have ssd and ssd got in crashed ))) I bought new ssd and is normal works .. ))) Link to comment Share on other sites More sharing options...
Andy Vandijck Posted January 31, 2015 Share Posted January 31, 2015 AnV , this panic - this function ud_insn_hex . This strange ... Really? Weird... it should just return the hex data of the instruction :/ Can you trace it to its origin? Link to comment Share on other sites More sharing options...
carlo_67 Posted January 31, 2015 Share Posted January 31, 2015 And the rest of the graphics? Safari / Desktop / App Store / etc... EDIT: Desktop look fine, screenshot too... yeah! your kernel + replace kext Andy perfect for me perfect graphics good safari off and sleep good No Apple store I do a clean install 2 Link to comment Share on other sites More sharing options...
gils83 Posted January 31, 2015 Share Posted January 31, 2015 your kernel + replace kext Andy perfect for me perfect graphics good safari off and sleep good No Apple store I do a clean install for Lan , methode works for me to AppStore on cpu fx, the problem has nothing to do with the kernel, your lan is improperly installed that is certainly seen and not Ethernet adapter http://www.insanelymac.com/forum/topic/295534-mac-app-store-access-with-nullethernetkext/ 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted January 31, 2015 Share Posted January 31, 2015 for Lan , methode works for me to AppStore on cpu fx, the problem has nothing to do with the kernel, your lan is improperly installed that is certainly seen and not Ethernet adapter http://www.insanelymac.com/forum/topic/295534-mac-app-store-access-with-nullethernetkext/ Does the latest kernel work for you Gils? Link to comment Share on other sites More sharing options...
gils83 Posted January 31, 2015 Share Posted January 31, 2015 Does the latest kernel work for you Gils? I have yet to test your kernel but Andy AppStore on FX CPU works perfectly, Carlo has a direct problem with its network that has nothing to do with the kernel, I have not tested K10 CPU in Right now I galley on a HD 6850 that bug Link to comment Share on other sites More sharing options...
gils83 Posted January 31, 2015 Share Posted January 31, 2015 Andy , your kernel rev7 and rev8 works good (AMD CPU SSSE3) thank Link to comment Share on other sites More sharing options...
Meowthra Posted January 31, 2015 Share Posted January 31, 2015 Implementation code for old opemu: const int palignr_getimm128(const unsigned char *bytep) { int rv = 0; uint8_t modrm = bytep[4]; if (modrm < 0x40) { rv = (int)bytep[5]; } else if (modrm < 0x80) { rv = (int)bytep[6]; } else if (modrm < 0xC0) { rv = (int)bytep[9]; } else { rv = (int)bytep[5]; } return (const int)rv; } const int palignr_getimm64(const unsigned char *bytep) { int rv = 0; uint8_t modrm = bytep[3]; if (modrm < 0x40) { rv = (int)bytep[4]; } else if (modrm < 0x80) { rv = (int)bytep[5]; } else if (modrm < 0xC0) { rv = (int)bytep[8]; } else { rv = (int)bytep[4]; } return (const int)rv; } /** Runs the ssse3 emulator. returns the number of bytes consumed. **/ int ssse3_run(uint8_t *instruction, x86_saved_state_t *state, int longmode, int kernel_trap) { // pointer to the current byte we're working on uint8_t *bytep = instruction; int ins_size = 0; int is_128 = 0, src_higher = 0, dst_higher = 0; ssp_m128 xmmsrc, xmmdst, xmmres; ssp_m64 mmsrc,mmdst, mmres; /** We can get a few prefixes, in any order: ** 66 throws into 128-bit xmm mode. ** 40->4f use higher xmm registers. **/ if(*bytep == 0x66) { is_128 = 1; bytep++; ins_size++; } if((*bytep & 0xF0) == 0x40) { if(*bytep & 1) src_higher = 1; if(*bytep & 4) dst_higher = 1; bytep++; ins_size++; } if(*bytep != 0x0f) return 0; bytep++; ins_size++; /* Two SSSE3 instruction prefixes. */ if((*bytep == 0x38 && bytep[1] != 0x0f) || (*bytep == 0x3a && bytep[1] == 0x0f)) { uint8_t opcode = bytep[1]; uint8_t *modrm = &bytep[2]; uint8_t operand; ins_size += 2; // not counting modRM byte or anything after. if(is_128) { int consumed = fetchoperands(modrm, src_higher, dst_higher, &xmmsrc, &xmmdst, longmode, state, kernel_trap, 1, ins_size); operand = bytep[2 + consumed]; ins_size += consumed; switch(opcode) { case 0x00: //pshufb128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_shuffle_epi8_REF(xmmdst.i, xmmsrc.i); break; case 0x01: //phaddw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hadd_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x02: //phaddd128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hadd_epi32_REF(xmmdst.i, xmmsrc.i); break; case 0x03: //phaddsw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hadds_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x04: //pmaddubsw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_maddubs_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x05: //phsubw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hsub_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x06: //phsubd128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hsub_epi32_REF(xmmdst.i, xmmsrc.i); break; case 0x07: //phsubsw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_hsubs_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x08: //psignb128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_sign_epi8_REF(xmmdst.i, xmmsrc.i); break; case 0x09: //psignw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_sign_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x0A: //psignd128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_sign_epi32_REF(xmmdst.i, xmmsrc.i); break; case 0x0B: //pmulhrsw128(&xmmsrc,&xmmdst,&xmmres); xmmres.i = ssp_mulhrs_epi16_REF(xmmdst.i, xmmsrc.i); break; case 0x0F: //palignr128(&xmmsrc,&xmmdst,&xmmres,(const int)operand); xmmres.i = ssp_alignr_epi8_REF(xmmdst.i, xmmsrc.i, palignr_getimm128(bytep)); ins_size++; break; case 0x1C: //pabsb128(&xmmsrc,&xmmres); xmmres.i = ssp_abs_epi8_REF(xmmsrc.i); break; case 0x1D: //pabsw128(&xmmsrc,&xmmres); xmmres.i = ssp_abs_epi16_REF(xmmsrc.i); break; case 0x1E: //pabsd128(&xmmsrc,&xmmres); xmmres.i = ssp_abs_epi32_REF(xmmsrc.i); break; default: return 0; } storeresult128(*modrm, dst_higher, xmmres); } else { int consumed = fetchoperands(modrm, src_higher, dst_higher, &mmsrc, &mmdst, longmode, state, kernel_trap, 0, ins_size); operand = bytep[2 + consumed]; ins_size += consumed; switch(opcode) { case 0x00: //pshufb64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_shuffle_pi8_REF(mmdst.m64, mmsrc.m64); break; case 0x01: //phaddw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hadd_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x02: //phaddd64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hadd_pi32_REF(mmdst.m64, mmsrc.m64); break; case 0x03: //phaddsw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hadds_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x04: //pmaddubsw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_maddubs_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x05: //phsubw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hsub_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x06: //phsubd64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hsub_pi32_REF(mmdst.m64, mmsrc.m64); break; case 0x07: //phsubsw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_hsubs_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x08: //psignb64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_sign_pi8_REF(mmdst.m64, mmsrc.m64); break; case 0x09: //psignw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_sign_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x0A: //psignd64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_sign_pi32_REF(mmdst.m64, mmsrc.m64); break; case 0x0B: //pmulhrsw64(&mmsrc,&mmdst,&mmres); mmres.m64 = ssp_mulhrs_pi16_REF(mmdst.m64, mmsrc.m64); break; case 0x0F: //palignr64(&mmsrc,&mmdst,&mmres, (const int)operand); mmres.m64 = ssp_alignr_pi8_REF(mmdst.m64, mmsrc.m64, palignr_getimm64(bytep)); ins_size++; break; case 0x1C: //pabsb64(&mmsrc,&mmres); mmres.m64 = ssp_abs_pi8_REF(mmsrc.m64); break; case 0x1D: //pabsw64(&mmsrc,&mmres); mmres.m64 = ssp_abs_pi16_REF(mmsrc.m64); break; case 0x1E: //pabsd64(&mmsrc,&mmres); mmres.m64 = ssp_abs_pi32_REF(mmsrc.m64); break; default: return 0; } storeresult64(*modrm, dst_higher, mmres); } } else { // opcode wasn't handled here return 0; } return ins_size; } I'm currently working on the opemu mark 4. It even supports relative displacement (disp8 / disp32). I just finished adaptations to the code and I'm ready to start compiling the code. If all goes well, new kernel in a short while. HI AnV sorry Before my analysis is wrong 0 1 2 3 4 66 0f 3a 0f ** byte[4] is「modrm byte」 Range 0x00 - 0xff (0-255) modrm 4 mode is 「mod = *ModRM >> 6;」get mod 0 - 3 //modrm 00 mod == 0 Range (0x00 - 0x3f) //modrm 01 mod ==1 Range (0x40 - 0x7f) //modrm 10 mod ==2 Range (0x80 - 0xbf) //modrm 11 mod ==3 Range (0xc0 - 0xff) Not 「if modrm (byte[4]) > BF」 Should be unsigned char mod = *ModRM >> 6; //(0-255) if mod == 0 .... if mod == 1 .... if mod == 2 .... I checked ssse3_run No Error I currently checking fetchoperands I found modrm src = 4 or 5 There are differences in the length of byte I will re-decryption SINETEK code re-correction data repost 3 Link to comment Share on other sites More sharing options...
gils83 Posted February 1, 2015 Share Posted February 1, 2015 no works on CPU Phenom 1 Link to comment Share on other sites More sharing options...
Meowthra Posted February 1, 2015 Share Posted February 1, 2015 Hi AnV SINETEK code has been decryptedPlease See http://www.insanelymac.com/forum/topic/304258-ssse3-opcode-mode-for-amd-opemu/Function fetchoperands Is wrong This is my idea original mod 3 is Right but mod 0 src 4 Missing mod0-src4-base5 if(mod == 0) if(num_src == 4) if(base == 5) mod0-src4-base5 ....(original Missing) else mod0-src4 .... else if(num_src == 5) mod0-src5 .... else mod0.... if(mod == 1) if(num_src == 4) mod1-src4 .... else mod1.... if(mod == 2) if(num_src == 4) mod2-src4 .... else mod2 .... First understand the SSE instruction set worksThen modify There is also a question pshufb A & Mask A is dst Mask ?? Link to comment Share on other sites More sharing options...
Andy Vandijck Posted February 1, 2015 Share Posted February 1, 2015 Hi AnV SINETEK code has been decrypted Please See http://www.insanelymac.com/forum/topic/304258-ssse3-opcode-mode-for-amd-opemu/ Function fetchoperands Is wrong This is my idea original mod 3 is Right but mod 0 src 4 Missing mod0-src4-base5 if(mod == 0) if(num_src == 4) if(base == 5) mod0-src4-base5 ....(original Missing) else mod0-src4 .... else if(num_src == 5) mod0-src5 .... else mod0.... if(mod == 1) if(num_src == 4) mod1-src4 .... else mod1.... if(mod == 2) if(num_src == 4) mod2-src4 .... else mod2 .... First understand the SSE instruction set works Then modify There is also a question pshufb A & Mask A is dst Mask ?? Shuffle bytes mask. Described inside the docs for Intel SSSE3 implementation. This should be fine. If you want to, you're free to do some tests... I still have no time as I'm still doing payed work for that developer in poland, I did however complete my first milestone for him so that should be my second payment. Link to comment Share on other sites More sharing options...
Bronya Posted February 1, 2015 Share Posted February 1, 2015 Really? Yes . I tried get value from ud_insn_hex with "printf" - this panic . You forgot add one: 1)in function ssse3_grab_operands(...) need add : if (ssse3_obj->op_obj->state_flavor == SAVEDSTATE_64) { ssse3_obj->op_obj->state64 = saved_state64(state); <--- this need add and same 32 bit . and normal work . reg_sel[0] = ssse3_obj->op_obj->state64->rax; reg_sel[1] = ssse3_obj->op_obj->state64->rcx; ... } 2) disp8/disp32 don't working - maybe because problem getting "bytep = ...ud_insn_hex ...;" Weird... it should just return the hex data of the instruction :/ Can you trace it to its origin? I tried other metod . but i get panic :\ . I think that need other try ... 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted February 1, 2015 Share Posted February 1, 2015 Yes . I tried get value from ud_insn_hex with "printf" - this panic . You forgot add one: 1)in function ssse3_grab_operands(...) need add : if (ssse3_obj->op_obj->state_flavor == SAVEDSTATE_64) { ssse3_obj->op_obj->state64 = saved_state64(state); <--- this need add and same 32 bit . and normal work . reg_sel[0] = ssse3_obj->op_obj->state64->rax; reg_sel[1] = ssse3_obj->op_obj->state64->rcx; ... } 2) disp8/disp32 don't working - maybe because problem getting "bytep = ...ud_insn_hex ...;" I tried other metod . but i get panic :\ . I think that need other try ... I know you'll find it... I'll return to developing the kernel as soon as I've done my work for that developer... Step 1/4 completed... for now... So I do have a break now but I've been buried in code and study between yesterday and today... been developing for at least 12 hours (probably more) and now I finished the first module. I cannot give any specifics of course (this project is private). I could use a little break... you know how it is... 1 Link to comment Share on other sites More sharing options...
carlo_67 Posted February 1, 2015 Share Posted February 1, 2015 for Lan , methode works for me to AppStore on cpu fx, the problem has nothing to do with the kernel, your lan is improperly installed that is certainly seen and not Ethernet adapter http://www.insanelymac.com/forum/topic/295534-mac-app-store-access-with-nullethernetkext/ good 1 Link to comment Share on other sites More sharing options...
Bronya Posted February 1, 2015 Share Posted February 1, 2015 I found problem panic - this because don't working instructions palignr , because don't works palignr_getimm128() and palignr_getimm64() . I tested all instructions, this works, but palignr don't work. ))) Link to comment Share on other sites More sharing options...
Kaya80 Posted February 1, 2015 Share Posted February 1, 2015 What about Phenom II support??I can try any of these kernel on 10.10.1 to solve graphics issues? Link to comment Share on other sites More sharing options...
Meowthra Posted February 3, 2015 Share Posted February 3, 2015 10.10 SSSE3 FiX rev.1 for AMD K8 K10 fetchoperands memory pointer error FIX Screen Capture PNG & Tiff FIX Safari 8 & Webkit bug FIX SSSE3 palignr Building………… 1010-SSSE3-FIX-rev.1.zip 1010-SSSE3-FIX-rev.1.diff.zip 1010-SSEPlus-SSSE3-FIX.zip 13 Link to comment Share on other sites More sharing options...
lpukraine Posted February 3, 2015 Share Posted February 3, 2015 (edited) 10.10 SSSE3 FiX rev.1 for AMD K8 K10 fetchoperands memory pointer error FIX Screen Capture PNG & Tiff FIX Safari 8 & Webkit bug FIX My first results with 1010-SSSE3-FIX-rev.1.zip: Seems that work very...very good)) - png screenshot work - safari works - app store works - can select file with click on icon UPD1: Graphics bugs with some avatars in Safari: but it is a vary small problem for this nice kernel) Will be perfect to get iCloud too. Method with replacement files from Intel machine does not work for me. UPD2: Same results with 1010-SSEPlus-SSSE3-FIX.zip For now I don't see any difference. UPD3: Made fresh installation. Safari and App Store work perfect without webkit fix!!! Launchpad looks good without fixes. No need any kexts replacements. Almost perfect kernel! Thanks for it!!! But one question. Will it work with 10.10.2? Edited February 3, 2015 by lpukraine 5 Link to comment Share on other sites More sharing options...
yakei Posted February 3, 2015 Share Posted February 3, 2015 10.10 SSSE3 FiX rev.1 for AMD K8 K10 fetchoperands memory pointer error FIX Screen Capture PNG & Tiff FIX Safari 8 & Webkit bug FIX SSSE3 palignr Building………… 1010-SSSE3-FIX-rev Hi, quick test with safari webkit and Safari Preview kit installed. I could procedure the last 10 min obtain no error message in safari. after to open 15 internet sides (at the same time, incl. Youtube) no crashes, app store functioned also. I test ........ update 1: + without safari webkit and Safari Picture Preview kit, safari no crashes , app store functioned, i think this is the solution....... - without Safari Picture Preview kit, the Preview picture in Safari ,the picture are not sharp, color are not correctly represented (only the preview picture). update 2: - without Safari Picture Preview kit, the Preview picture in Safari ,the picture are not sharp, color are not correctly represented (only the preview picture). ----> Solution: simply the file ImageIO.Framework and preview app from 10.9.5 to 10.10.1, picture Preview in Safari are now ok. many thanks 1 Link to comment Share on other sites More sharing options...
theconnactic Posted February 3, 2015 Share Posted February 3, 2015 Can you port the fix to Lion, Mountain Lion and Mavericks? It seems that we finally have a fully functional SSSE3 emulator. All the best! 2 Link to comment Share on other sites More sharing options...
tatomi92 Posted February 3, 2015 Share Posted February 3, 2015 10.10 SSSE3 FiX rev.1 for AMD K8 K10 fetchoperands memory pointer error FIX Screen Capture PNG & Tiff FIX Safari 8 & Webkit bug FIX SSSE3 palignr Building………… So the kernels work with Phenom CPU-s as well? Link to comment Share on other sites More sharing options...
Kaya80 Posted February 3, 2015 Share Posted February 3, 2015 I think yes, 'cauz Phenom is K10 Family Soryy but....i've to copy kernel in S/L/Kernels, right??but how??i've no more the utilities i used to install old kernels, can u pass me a link with instructions??Sorry Link to comment Share on other sites More sharing options...
Recommended Posts