Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何指示 MSVC 编译器使用 64 位/32 位除法而不是较慢的 128 位/64 位除法?
如何告诉 MSVC 编译器使用 64 位 32 位除法运算来计算 x86 64 目标的以下函数的结果 include
c
visualc
x8664
compileroptimization
integerdivision
x86-64 REX 前缀中的“REX”代表什么?
From 英特尔的SDM 第 2 2 1 节指定 REX 前缀用于 指定 GPR 和 SSE 寄存器 指定 64 位操作数大小 指定扩展控制寄存器 但缩写词中的字母 REX 代表什么 这个2002年热门薯条演示AMD 扩展了幻灯片 10 上
Assembly
x86
x8664
intel
machinecode
这个 128 位整数乘法在汇编 (x86-64) 中如何工作?
我正在阅读计算机系统 程序员的视角作业是描述这个算法是如何工作的 C函数 void store prod int128 dest int64 t x int64 t y dest x int128 y 集会 movq rdx rax cqt
c
Assembly
x8664
128bit
向量化模运算
我正在尝试编写一些相当快速的分量向量加法代码 我正在使用 我相信是有符号的 64 位整数 函数是 void addRq int64 t a const int64 t b const int32 t dim const int64 t q
c
Assembly
x8664
SSE
intrinsics
如何在 OS X 10.6 上构建 64 位 Python —— 只有 64 位,没有通用的废话
我只是想在我的开发机器上构建这个 来自 Python org 的二进制安装仍然是 32 位 安装扩展 例如 MySQLdb 让我发疯 试图找出每个扩展的正确标志 澄清 我没有替换系统 Python 我只是将 Python org 二进制文件
python
MacOS
64bit
osxsnowleopard
x8664
sin 和 cos 的向量化
我正在玩编译器资源管理器并遇到了异常 我认为 如果我想让编译器向量化一个sin计算 using libmvec 我会写 include
c
gcc
vectorization
x8664
trigonometry
C++ 当从函数返回结构体时,汇编中实际发生了什么?
我试图弄清楚如果从函数中按值返回结构 而不是返回指向该结构的指针 那么在 C 中实际会发生什么 如果函数只能返回适合寄存器的值 那么当按值发送结构时 如何进行通信 我在某处读到过 我尝试在 Godbolt 上测试它 看看它在做什么 但我不了
c
Assembly
x8664
callingconvention
ABI
从 x64 .NET 访问 x86 COM
我有一个 x64 服务器 因为我的库被编译为 AnyCPU 所以它在 x64 下运行 我们需要访问在 x86 下注册的 COM 组件 我对 COM 的了解还不够 我的谷歌搜索也没有任何结果 问题 对于 COM 组件 我可以使用从 x64 回
NET
com
x8664
Interop
32bit64bit
FLD指令x64位
我在 x64 位中使用 FLD 指令时遇到一些问题 想将Double值加载到st0寄存器中的堆栈指针FPU 但这似乎是不可能的 在 Delphi x32 中 我可以使用以下代码 function DoSomething X Double D
Delphi
Assembly
x8664
FPU
basm
编写 std::copysign 的可移植 SSE/AVX 版本
我目前正在使用 SSE 和 AVX 内在函数编写 QR 分解 线性系统求解器 的矢量化版本 其中一个子步骤需要选择与另一个值相反 等于的值的符号 在串行版本中 我为此使用了 std copysign 现在我想为 SSE AVX 寄存器创建一
c
x8664
SSE
SIMD
avx
用汇编程序编写 x86_64 Linux 内核模块
我尝试在 nasm 中编写简单的内核模块 v3 6 但 insmod 告诉我 sudo insmod hello ko insmod ERROR could not insert module hello ko Invalid module
Assembly
Linuxkernel
x8664
kernelmodule
x86_64 寄存器 rax/eax/ax/al 覆盖完整寄存器内容[重复]
这个问题在这里已经有答案了 正如广泛宣传的那样 现代 x86 64 处理器具有 64 位寄存器 可以以向后兼容的方式用作 32 位寄存器 16 位寄存器甚至 8 位寄存器 例如 0x1122334455667788 rax 64 bits
Assembly
x8664
cpuregisters
zeroextension
C++ 64位int:按引用传递或按值传递
这是一个关于 64 位整数的效率问题 假设我不需要修改 int 参数的值 我应该通过值还是引用传递它 假设32位机器 1 32位整数 Iguess答案是 按值传递 因为 按引用传递 将产生额外的内存查找开销 2 64位int 如果我通过引用
c
performance
passbyreference
32bit64bit
x8664
在 GCC 中动态创建 va_list - 可以做到吗?
我的问题是vsprintf是我无法直接获取输入参数 我必须先逐一获取输入并将它们保存在void 然后通过这个void to vsprintf 对于windows来说一切都很好 但是当我来到64位linux时 gcc无法编译 因为它不允许从v
c
gcc
x8664
variadicfunctions
安装和更新 Perl 模块为“通用”(x86_64、arm64)?
是否可以安装和更新具有通用 x86 64 arm64 架构支持的 Perl CPAN 模块 如果是 那么如何 背景 在基于arm的macOS计算机上 可以为一个指定的架构安装Perl CPAN模块 如下所示 sudo cpan i Enco
MacOS
perl
x8664
cpan
applesilicon
gfortran 傻瓜版: mcmodel=medium 到底是做什么的?
我有一些代码在编译时出现重定位错误 下面是说明该问题的示例 program main common baz a b c real a b c b 0 0 call foo print b end subroutine foo common
memorymanagement
Fortran
x8664
gfortran
为什么局部静态对象的初始化使用隐藏的保护标志?
C 中的局部静态对象在第一次需要时初始化一次 如果初始化有副作用 则这是相关的 void once static bool b std cout lt lt hello lt lt std endl return true once第一次调
c
Optimization
x8664
如果我优化大小而不是速度,为什么 GCC 生成的代码速度会快 15-20%?
我第一次注意到 在 2009 年 GCC 至少在我的项目和我的机器上 如果我优化的话 倾向于生成明显更快的代码size Os 而不是速度 O2 or O3 从那时起我就一直想知道为什么 我已经成功地创建了 相当愚蠢的 代码来显示这种令人惊讶
c
performance
gcc
x8664
compileroptimization
Linux x86_64汇编socket编程
我正在学习汇编 按照我通常学习的任何新语言的步骤 我已经通过汇编实现了网络化 遗憾的是 进展并不顺利 因为我在第 0 步几乎失败了 这将获得一个可以开始通信的套接字 汇编代码应大致等于以下 C 代码 include
c
Linux
Sockets
Assembly
x8664
错误共享和原子变量
当不同的变量位于同一个缓存行内时 您可以体验到虚假分享 这意味着即使两个不同的线程 在不同的内核上运行 正在访问两个不同的变量 如果这两个变量驻留在同一缓存行中 您也会受到性能影响 因为每次都会触发缓存一致性 现在说这些变量是原子变量 我所
c
Multithreading
caching
x8664
«
1 ...
15
16
17
18
19
20
21
»