草庐IT

asm-asm-tree

全部标签

javascript - 为什么 asm.js 项目在 Chrome 中运行速度比 FireFox 快?

我已经使用emscripten将我大学类(class)的一个游戏引擎项目从C/C++移植到JavaScript。asm.js优化标志已设置,我一直在测量性能。但令人费解的是,在Firefox中的性能很差。而该项目在Chrome和Opera中运行良好。鉴于FireFox是使用asm.js优化的浏览器,这对我来说没有意义。该项目是一款使用SDL和WebGL的速降激流回旋赛车游戏。在我的笔记本电脑上运行Firefox时,分析器显示该演示完全受CPU限制,瓶颈出现在_SDL_LockSurface()和_TTF_RenderText_Solid()周围。这些用于呈现动态文本等。然而在Chrom

c++ - 在 GNU 的 C++ 代码中使用 C 头文件。包含内联程序集 : impossible constraint in 'asm' 的错误

我有一个奇怪的。我正在使用供应商头文件开发嵌入式系统。我正在使用GCC4.6.3编译文件。我想为我的代码使用C++,我有错误我无法弄清楚。我正在运行供应商示例程序,我所做的只是将main.c文件的名称更改为main.cpp。因此,我假设头文件由C++编译器解释。其中之一包含以下几行:__attribute__((naked))staticreturn_typesignature\{\__asm(\"svc%0\n"\"bxr14"::"I"(number):"r0"\);\}如果文件名是main.c,则文件可以正确编译,我认为这是因为C编译器正在处理该文件。如果我使用C++,我得到的错

c++ - boost::property_tree 无一异常(exception)

我需要解析一些INI文件。为此,我尝试使用boost::property_tree,但在我的系统中不允许出现异常。如何在使用boost::property_tree时禁用异常支持?如果没有办法做到这一点,非常感谢对其他图书馆的任何建议。在@sehe的回答后,我尝试了这段代码,但是没有成功:#include#include#include#includenamespaceboost{voidthrow_exception(std::exceptionconst&e){std::cerr编译行代码使用以下参数:-c-DBOOST_USER_CONFIG=""-DBOOST_NO_EXCEP

CMake 添加子目录错误 : "When specifying an out-of-tree source a binary directory must be explicitly specified"

我的目录结构如下:rootlibACMakeLists.txtClassA.cpplibBCMakeLists.txtClassB.cppsharedCodeenums.hAbstractClass.hCMake文件中如何包含sharedCode目录?这样classA(在libA中)和classB(在libB中)都可以使用enums.h和AbstractClass.h?在我尝试使用的CMakeLists.txt中:add_subdirectory(../sharedCode)但它给出了错误add_subdirectorynotgivenabinarydirectorybutthegiv

c++ - 与 boost::property_tree XML 解析器一起使用时 boost::coroutine 库崩溃

我正在使用Simple-Web-Server用于创建将XML转换为JSON的简单Web服务的库,反之亦然。反过来,它使用了几个boost库以及其中的boost::coroutine。对于XMLJSON转换,我使用boost::property_tree库进行中间表示。这是代码:#include#include#include#defineBOOST_SPIRIT_THREADSAFE#include#include#includeusingnamespacestd;usingnamespaceboost::property_tree;usingHttpServer=SimpleWeb:

c++ - 在构建 kd-Tree 时对 'median' 的定义感到困惑

我试图构建一个kd树来搜索一组点,但我对维基百科文章中“中位数”的使用感到困惑。为了便于使用,维基百科文章将构造kd-tree的伪代码表述为:functionkdtree(listofpointspointList,intdepth){ifpointListisemptyreturnnil;else{//Selectaxisbasedondepthsothataxiscyclesthroughallvalidvaluesvarintaxis:=depthmodk;//Sortpointlistandchoosemedianaspivotelementselectmedianbyaxis

c++ - 从 DLL 导出 ASM 函数 - Visual Studio C++

我已经创建了Dll项目。我创建了具有一个功能的myasm.asm文件:.486.modelflat,stdcall.codeMyProc1procx:DWORD,y:DWORDxoreax,eax//......//retMyProc1endpend这是我的头文件:#pragmaonce#include#ifdefLAB1DLL_EXPORTS#defineLAB1DLL_API__declspec(dllexport)#else#defineLAB1DLL_API__declspec(dllimport)#endifextern"C"{LAB1DLL_APIint_stdcallMy

c++ - Instruments Call Tree 破坏了 R、C++ 和 Fortran 的混合

我正在尝试针对CPU时间分析OpenMx的一个函数,一个包含C++和Fortran代码的R包。我的操作系统是OSX10.10。我读过section关于R手册中的这个主题。本款和thispost带我试试Instruments。这是我做的打开的工具选择时间分析器模板按下记录使用RStudio启动我的R脚本我得到以下输出:.命令行工具sample返回相同的输出。问题是它看起来像omxunsafedgemm_会直接从主线程调用。但是,这是一个低级Fortran函数。它总是由名为omxDGEMM的C++函数调用。在此示例中,omxDGEMM首先由omxCallRamExpection调用(因此几

c++ - 指向 C++ 中内联 __asm block 的指针

所以我一直在VS2010中使用__asmblock,但我没能找到更好的方法来获取指向汇编block开头的指针。我知道如何做到这一点的唯一方法是声明一个void函数。一个问题是void函数在我的程序集block之前和之后都有自己的程序集,我必须通过获取函数的真实地址并添加偏移量来进行补偿。例子:C++voidmyfunc(){__asm{nopnopnopret}}会产生类似这样的装配:pushebpmovebp,espaddesp,8nopnopnopretnmovesp,ebppopebpretnmyfunc()如果执行,很可能会出错。 最佳答案

C++ ASM Inline如何使用boolean?

说我有这样的东西..boolisPatched;我有一些其他GUI,我在其中设置了isPatched=true;和isPatched=false;,isPatched=!isPatched;void__declspec(naked)test(void){//__asm{PUSHADPUSHFDMOVEAX,isPatchedCMPEAX,0jenoPatchedMOVEAX,DWORDPTRDS:[ESI+0x77C]MOVJohn.oldA,EAXMOVEAX,John.AMOVDWORDPTRDS:[ESI+0x77C],EAXJMPfinishnoPatched:PUSHEDXM