From c96209cc42d399adc64b7de0294dfdc853e42f4f Mon Sep 17 00:00:00 2001 From: Roy Qu Date: Wed, 1 Mar 2023 19:39:09 +0800 Subject: [PATCH] - fix: Icons for buttons in the cpu info dialog is not correctly set. - enhancement: Add cfi directives for asm syntaxer in linux. --- NEWS.md | 2 + RedPandaIDE/iconsmanager.cpp | 2 +- RedPandaIDE/mainwindow.cpp | 4 +- .../languageasmgenerationwidget.cpp | 8 +- RedPandaIDE/translations/RedPandaIDE_pt_BR.ts | 4 + RedPandaIDE/translations/RedPandaIDE_zh_CN.ts | 257 +-- RedPandaIDE/translations/RedPandaIDE_zh_TW.ts | 4 + RedPandaIDE/widgets/cpudialog.cpp | 2 + libs/qsynedit/qsynedit_zh_CN.ts | 1724 ++++++++--------- 9 files changed, 1009 insertions(+), 998 deletions(-) diff --git a/NEWS.md b/NEWS.md index 541f3427..1fc1d123 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,8 @@ Red Panda C++ Version 2.16 - fix: Project files that not in the project folder is not correctly handled in makefile. - enhancement: Improve support for function pointer typedefs. - fix: Can't debug project when project is saved after it's compiled. + - fix: Icons for buttons in the cpu info dialog is not correctly set. + - enhancement: Add cfi directives for asm syntaxer in linux. Red Panda C++ Version 2.15 diff --git a/RedPandaIDE/iconsmanager.cpp b/RedPandaIDE/iconsmanager.cpp index 952f3d31..e07dda91 100644 --- a/RedPandaIDE/iconsmanager.cpp +++ b/RedPandaIDE/iconsmanager.cpp @@ -81,7 +81,7 @@ void IconsManager::updateParserIcons(const QString &iconSet, int size) void IconsManager::updateActionIcons(const QString& iconSet, int size) { - QString iconFolder = mIconSetTemplate.arg( iconSetsFolder(),iconSet,"actions"); + QString iconFolder = mIconSetTemplate.arg(iconSetsFolder(),iconSet,"actions"); updateMakeDisabledIconDarker(iconSet); mActionIconSize = QSize(size,size); mIconPixmaps.insert(ACTION_MISC_BACK, createSVGIcon(iconFolder+"00Misc-01Back.svg",size,size)); diff --git a/RedPandaIDE/mainwindow.cpp b/RedPandaIDE/mainwindow.cpp index 093c9ec7..c6205a9f 100644 --- a/RedPandaIDE/mainwindow.cpp +++ b/RedPandaIDE/mainwindow.cpp @@ -5673,9 +5673,9 @@ void MainWindow::onCompileFinished(QString filename, bool isCheckSyntax) if (e && editor) { int line = e->caretY(); int startLine = 1; - QString s = " # "+e->filename()+":"; + QString s = "# "+e->filename()+":"; for(int i=0;idocument()->count();i++) { - QString t=editor->document()->getLine(i); + QString t=editor->document()->getLine(i).trimmed(); if (t.startsWith(s,PATH_SENSITIVITY)) { t=t.mid(s.length()); int pos = t.indexOf(":"); diff --git a/RedPandaIDE/settingsdialog/languageasmgenerationwidget.cpp b/RedPandaIDE/settingsdialog/languageasmgenerationwidget.cpp index 5291bd05..9d27be52 100644 --- a/RedPandaIDE/settingsdialog/languageasmgenerationwidget.cpp +++ b/RedPandaIDE/settingsdialog/languageasmgenerationwidget.cpp @@ -7,9 +7,7 @@ LanguageAsmGenerationWidget::LanguageAsmGenerationWidget(const QString &name, co ui(new Ui::LanguageAsmGenerationWidget) { ui->setupUi(this); -#ifndef Q_OS_WIN - ui->chkNoSEHDirectives->setVisible(false); -#endif + ui->chkNoSEHDirectives->setText(tr("Don't generate cli directives.")); #if !defined(ARCH_X86_64) && !defined(ARCH_X86) ui->grpX86Syntax->setVisible(false); #endif @@ -23,9 +21,7 @@ LanguageAsmGenerationWidget::~LanguageAsmGenerationWidget() void LanguageAsmGenerationWidget::doLoad() { ui->chkNoDebugDirectives->setChecked(pSettings->languages().noDebugDirectivesWhenGenerateASM()); -#ifdef Q_OS_WIN ui->chkNoSEHDirectives->setChecked(pSettings->languages().noSEHDirectivesWhenGenerateASM()); -#endif #if defined(ARCH_X86_64) || defined(ARCH_X86) switch(pSettings->languages().x86DialectOfASMGenerated()) { case Settings::Languages::X86ASMDialect::ATT: @@ -41,9 +37,7 @@ void LanguageAsmGenerationWidget::doLoad() void LanguageAsmGenerationWidget::doSave() { pSettings->languages().setNoDebugDirectivesWhenGenerateASM(ui->chkNoDebugDirectives->isChecked()); -#ifdef Q_OS_WIN pSettings->languages().setNoSEHDirectivesWhenGenerateASM(ui->chkNoSEHDirectives->isChecked()); -#endif #if defined(ARCH_X86_64) || defined(ARCH_X86) if (ui->rbATT->isChecked()) { pSettings->languages().setX86DialectOfASMGenerated(Settings::Languages::X86ASMDialect::ATT); diff --git a/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts b/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts index 5a656971..92c4657a 100644 --- a/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts +++ b/RedPandaIDE/translations/RedPandaIDE_pt_BR.ts @@ -3077,6 +3077,10 @@ Instruction syntax: + + Don't generate cli directives. + + MacroInfoModel diff --git a/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts b/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts index c58d7b41..59d9d2bc 100644 --- a/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts +++ b/RedPandaIDE/translations/RedPandaIDE_zh_CN.ts @@ -4135,6 +4135,11 @@ Are you really want to continue? Intel Intel + + + Don't generate cli directives. + 不生成cli指令。 + MacroInfoModel @@ -4244,7 +4249,7 @@ Are you really want to continue? - + Issues 编译器 @@ -4677,7 +4682,7 @@ Are you really want to continue? - + New Problem Set 新建试题集 @@ -4699,7 +4704,7 @@ Are you really want to continue? - + Save Problem Set 保存试题集 @@ -4707,7 +4712,7 @@ Are you really want to continue? - + Load Problem Set 载入试题集 @@ -4838,14 +4843,14 @@ Are you really want to continue? - + Import FPS Problem Set 导入FPS试题集 - + Export FPS Problem Set 导出FPS试题集 @@ -5092,7 +5097,7 @@ Are you really want to continue? - + Clear all breakpoints 删除所有断点 @@ -5373,7 +5378,7 @@ Are you really want to continue? - + Rename Symbol 重命名符号 @@ -5394,13 +5399,13 @@ Are you really want to continue? - + Export As RTF 导出为RTF - + Export As HTML 导出为HTML @@ -5899,22 +5904,22 @@ Are you really want to continue? 全部复制 - + Go to Line 跳转到行 - + Line - + Template Exists 模板已存在 - + Template %1 already exists. Do you want to overwrite? 模板%1已存在。是否覆盖? @@ -5940,7 +5945,7 @@ Are you really want to continue? - + Problem Set %1 试题集%1 @@ -6010,15 +6015,15 @@ Are you really want to continue? - - + + Bookmark Description 书签描述 - - + + Description: 描述: @@ -6243,7 +6248,7 @@ Are you really want to continue? - + Delete 删除 @@ -6307,17 +6312,17 @@ Are you really want to continue? 中止 - + FPS Problem Set Files (*.fps;*.xml) FPS试题集文件(*.fps;*.xml) - + FPS Problem Set Files (*.fps) FPS试题集文件(*.fps) - + Export Error 导出时出错 @@ -6361,7 +6366,7 @@ Are you really want to continue? - + Do you want to save it? 需要保存吗? @@ -6373,13 +6378,13 @@ Are you really want to continue? - + New Project File? 新建项目文件? - + Do you want to add the new file to the project? 您是否要将新建的文件加入项目? @@ -6387,7 +6392,7 @@ Are you really want to continue? - + Save Error 保存失败 @@ -6426,78 +6431,78 @@ Are you really want to continue? 无标题%1 - + Modify Watch 修改监视表达式 - + Watch Expression 监视表达式 - + Do you really want to clear all breakpoints in this file? 您真的要清除该文件的所有断点吗? - + New project 新建项目 - + Close %1 and start new project? 关闭'%1'以打开新项目? - + Folder not exist 文件夹不存在 - + Folder '%1' doesn't exist. Create it now? 文件夹'%1'不存在。是否创建? - + Can't create folder 无法创建文件夹 - + Failed to create folder '%1'. 创建文件夹'%1'失败。 - + Save new project as - + Folder %1 is not empty. 文件夹%1不是空的。 - + Do you really want to delete it? 你真的要删除它吗? - + Change working folder 改变工作文件夹 - + File '%1' is not in the current working folder. File '%1' is not in the current working folder 文件'%1'不在当前工作文件夹中。 - + Do you want to change working folder to '%1'? 是否将工作文件夹改设为'%1'? @@ -6506,28 +6511,28 @@ Are you really want to continue? 正在删除试题... - + Can't Commit 无法提交 - + Git needs user info to commit. Git需要用信息进行提交。 - + Choose Input Data File 选择输入数据文件 - - + + All files (*.*) 所有文件 (*.*) - + Choose Expected Output Data File Choose Expected Input Data File 选择期望输出文件 @@ -6539,59 +6544,59 @@ Are you really want to continue? - + Choose Working Folder 选择工作文件夹 - - + + Header Exists 头文件已存在 - - + + Header file "%1" already exists! 头文件"%1"已存在! - + Source Exists 源文件已存在! - + Source file "%1" already exists! 源文件"%1"已存在! - + Can't commit! 无法提交! - + The following files are in conflicting: 下列文件处于冲突状态,请解决后重新添加和提交: - + Commit Message 提交信息 - + Commit Message: 提交信息: - + Commit Failed 提交失败 - + Commit message shouldn't be empty! 提交信息不能为空! @@ -6600,22 +6605,22 @@ Are you really want to continue? 小熊猫Dev-C++项目文件 (*.dev) - + New project fail 新建项目失败 - + Can't assign project template 无法使用模板创建项目 - + Remove file 删除文件 - + Remove the file from disk? 同时从硬盘上删除文件? @@ -6624,27 +6629,27 @@ Are you really want to continue? 无标题 - + New Project File Name 新的项目文件名 - + File Name: 文件名: - + File Already Exists! 文件已存在! - + File '%1' already exists! 文件'%1'已经存在! - + Add to project 添加到项目 @@ -6712,78 +6717,78 @@ Are you really want to continue? 请查看“工具输出”面板中的详细信息。 - + Red Panda C++ project file (*.dev) 小熊猫C++项目文件(*.dev) - + Rename Error 重命名出错 - + Symbol '%1' is defined in system header. 符号'%1'在系统头文件中定义,无法修改。 - + New Name 新名称 - - - - + + + + Replace Error 替换出错 - + Can't open file '%1' for replace! 无法打开文件'%1'进行替换! - + Contents has changed since last search! 内容和上次查找时不一致。 - + Rich Text Format Files (*.rtf) RTF格式文件 (*.rtf) - + HTML Files (*.html) HTML文件 (*.html) - + The current problem set is not empty. 当前的试题集不是空的。 - + Problem %1 试题%1 - - + + Problem Set Files (*.pbs) 试题集文件 (*.pbs) - - + + Load Error 载入失败 - + Problem Case %1 试题案例%1 @@ -6801,7 +6806,7 @@ Are you really want to continue? - + Error 错误 @@ -6877,7 +6882,7 @@ Are you really want to continue? - + Confirm Convertion 确认转换 @@ -6885,7 +6890,7 @@ Are you really want to continue? - + The editing file will be saved using %1 encoding. <br />This operation can't be reverted. <br />Are you sure to continue? 当前编辑器中的文件将会使用%1编码保存。<br />这项操作无法被撤回。<br />你确定要继续吗? @@ -9371,32 +9376,32 @@ Are you really want to continue? 要查找的关键字 - + Replace with: 替换为: - + Options: 选项: - + Case Sensitive 区分大小写 - + Whole words only 整个单词 - + Wrap Around 循环查找 - + Regular Expression 正则表达式 @@ -9405,57 +9410,57 @@ Are you really want to continue? 替换时提示 - + Scope: 范围: - + Global 全局 - + Selection 选中文字 - + Origin: 起点: - + From cursor 从光标处 - + Entire scope 整个范围 - + Close after search 找到后关闭对话框 - + Find Previous 查找前一个 - + Find Next 查找下一个 - + Replace All 全部替换 - + Close 关闭 @@ -9501,8 +9506,8 @@ Are you really want to continue? 在文件中查找 - - + + Replace 替换 @@ -9511,37 +9516,37 @@ Are you really want to continue? 在文件中替换 - - + + Continue Search Search Around 继续查找 - - + + End of file has been reached. End of file has been reached. 已到达文件结尾。 - + Search 查找 - + Beginning of file has been reached. 已到达文件开头 - + Do you want to continue from file's end? 是否从文件结尾继续? - - + + Do you want to continue from file's beginning? Do you want to start from beginning? 是否从文件开头继续? @@ -9910,7 +9915,7 @@ Are you really want to continue? - + Compiler Set @@ -9919,7 +9924,7 @@ Are you really want to continue? - + Compiler @@ -9931,7 +9936,7 @@ Are you really want to continue? 自动链接 - + @@ -10007,15 +10012,15 @@ Are you really want to continue? 杂项 - - + + Program Runner 程序运行 - + Problem Set 试题集 diff --git a/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts b/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts index 6584f183..0a3a45ec 100644 --- a/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts +++ b/RedPandaIDE/translations/RedPandaIDE_zh_TW.ts @@ -2914,6 +2914,10 @@ Instruction syntax: + + Don't generate cli directives. + + MacroInfoModel diff --git a/RedPandaIDE/widgets/cpudialog.cpp b/RedPandaIDE/widgets/cpudialog.cpp index 52c6ff92..bddce257 100644 --- a/RedPandaIDE/widgets/cpudialog.cpp +++ b/RedPandaIDE/widgets/cpudialog.cpp @@ -67,6 +67,7 @@ CPUDialog::CPUDialog(QWidget *parent) : ui->chkBlendMode->setChecked(pSettings->debugger().blendMode()); resize(pSettings->ui().CPUDialogWidth(),pSettings->ui().CPUDialogHeight()); + onUpdateIcons(); connect(pIconsManager,&IconsManager::actionIconsUpdated, this, &CPUDialog::onUpdateIcons); } @@ -106,6 +107,7 @@ void CPUDialog::updateDPI(float dpi) p->setFont(font); } resetEditorFont(dpi); + onUpdateIcons(); } void CPUDialog::setDisassembly(const QString& file, const QString& funcName,const QStringList& lines) diff --git a/libs/qsynedit/qsynedit_zh_CN.ts b/libs/qsynedit/qsynedit_zh_CN.ts index c8e98cf6..f734d4d5 100644 --- a/libs/qsynedit/qsynedit_zh_CN.ts +++ b/libs/qsynedit/qsynedit_zh_CN.ts @@ -14,32 +14,30 @@ 写入数据失败。 - - - + + + byte swap. - - + + convert %1 to %2. - - - - + + - - - - + - - + + + + + @@ -47,14 +45,14 @@ + - - - + + - - + + @@ -63,35 +61,35 @@ - - - + + + + - + + byte - - - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + @@ -99,14 +97,14 @@ + - - - + + - - + + @@ -116,56 +114,56 @@ - - - - - - - - - + + + + + + + + + + - + + word - - - - - - - - - - + + + + + + + + + + convert %1 in %2 to %3 in %4. - - - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + @@ -173,14 +171,14 @@ + - - - + + - - + + @@ -190,41 +188,41 @@ - - - - - - - - - + + + + + + + + + + - - + + + double word - - - - - - + + + + - + - - - - + + + - - - + + + + @@ -232,14 +230,14 @@ + - - - + + - - + + @@ -249,17 +247,19 @@ - - - - - - - - + + + + + + + + + - + + quad word @@ -268,21 +268,12 @@ 相等时移动 - - - - - - - - - - + @@ -290,7 +281,7 @@ - + @@ -298,277 +289,260 @@ + + + + + + + + + Conditional move %1 Conditional move if not overflow. - - - if equal - - - - - - - if zero. - - - - - - - if not equal. - - - - - - - if not zero. - - - - - - - if sign (negative). - - - - - - - if not sign (non-negative). - - - - - - - if greater(signed >). - - - - - - - if not less or equal(signed >). - - - - - if greater or equal(signed >=). + if equal - if not less(signed >=). + if zero. + - if less(signed <). + if not equal. + - if not greater or equal(signed <). - - - - - - if less or equal(signed <=). + if not zero. + - if not greater(signed <=). + if sign (negative). - - - - if above(unsigned >). + + + + if not sign (non-negative). - if not below or equal(unsigned >). + if greater(signed >). - if above or equal(unsigned >=). + if not less or equal(signed >). - if not below(unsigned >=). + if greater or equal(signed >=). - if below(unsigned <). + if not less(signed >=). - - if not above or equal(unsigned <). + if less(signed <). - - if below or equal(unsigned <=). + if not greater or equal(signed <). - - if not above(unsigned <=). + if less or equal(signed <=). - - - - if carry. + + + if not greater(signed <=). - - if not carry. + + if above(unsigned >). - - - if overflow. + + + if not below or equal(unsigned >). - - - if not overflow. + + + if above or equal(unsigned >=). - - - if parity. + + + if not below(unsigned >=). - - - if parity even. + + + if below(unsigned <). - - - if not parity. + + + if not above or equal(unsigned <). - - if parity odd. + + if below or equal(unsigned <=). - - Compare and exchange. + + + + if not above(unsigned <=). - Compare and exchange 8 bytes. + + + if carry. + + + if not carry. + + + - oct word + + + if overflow. + + + + + + + if not overflow. + + + + + + + if parity. + + + + + + + if parity even. + + + + + + + if not parity. - move data between immediate values, general purpose registers, segment registers, and memory. - - - - - move %1 data between immediate values, general purpose registers, segment registers, and memory. + + + if parity odd. + Compare and exchange. + + + + Compare and exchange 8 bytes. + + + - - Move %1. - - - - move immediate value to register. - - - - - - - - move immediate %1 value to register. + oct word - move immediate value to register %al/%ax/%eax/%rax. + move data between immediate values, general purpose registers, segment registers, and memory. + move %1 data between immediate values, general purpose registers, segment registers, and memory. + + + - move immediate %1 value to register %2. + + Move %1. - Move and sign extension. + move immediate value to register. @@ -576,99 +550,123 @@ + move immediate %1 value to register. + + + + move immediate value to register %al/%ax/%eax/%rax. + + + + + + + move immediate %1 value to register %2. + + + + + Move and sign extension. + + + + + + + + + Move sign-extended %1 to %2. - + Move with zero extension. - - - - - + + + + + Move zero-extended %1 to %2. - - Pop stack. - - - - - - - Pop %1 off stack. - - - - - - - Pop general-purpose registers from stack. - - - - - Push stack. - - - - - - Push %1 onto stack. + Pop stack. - Push general-purpose registers onto stack. + Pop %1 off stack. + Pop general-purpose registers from stack. + + + + Push stack. + + + + + + Push %1 onto stack. + + + + + + + Push general-purpose registers onto stack. + + + + + + + + Exchange and add %1. - - - - - + + + + + Exchange %1. - + add unsigned %1 with carry. - - - - + + + - - - + + @@ -677,74 +675,58 @@ + + integer - + add unsigned %1 with overflow. - - - - - - - add %1 with carry. - - - - - - - - - add %1. - - - compare. - - - - compare %1. + add %1 with carry. - decrement by 1. - - - - decrement %1 by 1. + add %1. + compare. + + + - unsigned %1 divide. + compare %1. + decrement by 1. + + + - signed %1 divide. + decrement %1 by 1. @@ -753,20 +735,16 @@ - signed %1 multiply. + unsigned %1 divide. - increment by 1. - - - - increment %1 by 1. + signed %1 divide. @@ -775,12 +753,12 @@ - unsigned %1 multiply. + signed %1 multiply. - Two's complement negation. + increment by 1. @@ -788,7 +766,7 @@ - Replace the value of the %1 with its two's complement + increment %1 by 1. @@ -797,77 +775,73 @@ - subtract %1 with borrow. + unsigned %1 multiply. + Two's complement negation. + + + - subtract %1. + Replace the value of the %1 with its two's complement + - ascii adjust after addition. - - - - ascii adjust before division. - - - - ascii adjust after multiplication. - - - - ascii adjust after subtraction. + subtract %1 with borrow. - decimal adjust after addition. - - - - decimal adjust after subtraction. - - - + - bitwise logical AND. + + subtract %1. - - + ascii adjust after addition. + + + - bitwise logical AND on %1 values. + ascii adjust before division. - bitwise logical NOT. + ascii adjust after multiplication. + ascii adjust after subtraction. + + + + decimal adjust after addition. + + + - - bitwise logical NOT on %1 value. + decimal adjust after subtraction. - bitwise logical OR. + bitwise logical AND. @@ -875,12 +849,12 @@ - bitwise logical OR on %1 values. + bitwise logical AND on %1 values. - bitwise logical XOR. + bitwise logical NOT. @@ -888,7 +862,12 @@ - bitwise logical XOR on %1 values. + bitwise logical NOT on %1 value. + + + + + bitwise logical OR. @@ -896,8 +875,12 @@ + bitwise logical OR on %1 values. + + + - rotate %1 through carry left. + bitwise logical XOR. @@ -905,8 +888,7 @@ - - rotate %1 through carry right. + bitwise logical XOR on %1 values. @@ -915,7 +897,7 @@ - rotate %1 left. + rotate %1 through carry left. @@ -924,7 +906,7 @@ - rotate %1 right. + rotate %1 through carry right. @@ -933,7 +915,7 @@ - shift %1 arithmetic left. + rotate %1 left. @@ -942,7 +924,7 @@ - shift %1 arithmetic right. + rotate %1 right. @@ -951,7 +933,7 @@ - shift %1 logical left. + shift %1 arithmetic left. @@ -960,7 +942,7 @@ - shift %1 logical right. + shift %1 arithmetic right. @@ -969,7 +951,7 @@ - shift %1 left double. + shift %1 logical left. @@ -978,205 +960,197 @@ - shift %1 right double. + shift %1 logical right. + - bit scan forward. - - - - bit scan forward in the %1 operand. + shift %1 left double. + + + + + shift %1 right double. + + + + + bit scan forward. + + + + + + + bit scan forward in the %1 operand. + + + + bit scan reserve. - - - + + + bit scan reserve in the %1 operand. - + bit test. - - - + + + bit test in the %1 operand. - + bit test and complement. - - - + + + bit test and complement in the %1 operand. - + bit test and reset. - - - + + + bit test and reset in the %1 operand. - + bit test and set. - - - + + + bit test and set in the %1 operand. - - + + mnemonic description. - + load +0.0 . - + load %mxcsr register. - + save %mxcsr register state. - + logical compare. - - - - + + + + logical compare %1. - + detect value out of range. - - + + detect %1 value out of range. - + call procedure. - + high-level procedure entry. - + software interrupt. - + interrupt on overflow. - + return from interrupt. - + jump. - + call far procedure. - + high-level procedure exit. - + return from far procedure. - + return. - - - compare string. - - - - - - - - compare %1 string. - - - - - load string. - - - - - - - - load %1 string. - - - move string. + compare string. @@ -1184,32 +1158,25 @@ - move %1 string. + compare %1 string. + + + + + load string. - repeat while not equal. - - - - repeat while not zero. - - - - repeat while equal. - - - - repeat while zero. + load %1 string. - scan string. + move string. @@ -1217,358 +1184,382 @@ - scan %1 string. - - - - - store string. + move %1 string. + repeat while not equal. + + + + repeat while not zero. + + + + repeat while equal. + + + - store %1 string. + repeat while zero. + + + + + scan string. - read from a port. - - - - input string from a port. - - - - input byte string from port. - - - - input double word string from port. + scan %1 string. - input word string from port. + store string. - write to a port. - - - - output string to port. - - - - output byte string to port. - - - - output double word string to port. + store %1 string. - - output word string to port. + + read from a port. - clear carry flag. + input string from a port. - clear direction flag. + input byte string from port. - clear interrupt flag. + input double word string from port. - complement carry flag. + input word string from port. + + + + + write to a port. + + + + + output string to port. + + + + + output byte string to port. + + + + + output double word string to port. + + + + + output word string to port. - set carry flag. + clear carry flag. - set direction flag. + clear direction flag. - set interrupt flag. + clear interrupt flag. + + + + + complement carry flag. - processor identification. + set carry flag. + set direction flag. + + + - - + set interrupt flag. + + + + + processor identification. + + + + + + + load effective address. - + no operation. - + undefined instruction. - - + + table lookup translation. - + load bcd. - + store bcd and pop. - + floating-point conditional move if below. - + floating-point conditional move if below or equal. - + floating-point conditional move if equal. - + floating-point conditional move if not below. - + floating-point conditional move if not below or equal. - + floating-point conditional move if not equal. - - + + floating-point conditional move if unordered. - + load integer. - + store integer. - + store integer and pop. - + load floating-point value. - + store floating-point value. - + store floating-point value and pop. - + absolute value. - + add floating-point. - + add floating-point and pop. - + change sign. - + divide floating-point. - + divide floating-point and pop. - + divide floating-point reverse. - + divide floating-point reverse and pop. - + add integer. - + divide integer. - + divide integer reverse. - + multiply integer. - + subtract integer. - + subtract integer reverse. - + multiply floating-point. - + multiply floating-point and pop. - + partial remainder. - + ieee partial remainder. - + round to integer. - + scale by power of two. - + square root. - + subtract floating-point. - + subtract floating-point and pop. - + subtract floating-point reverse. - + subtract floating-point reverse and pop. - + compare floating-point. - - - - - - - - - - + @@ -1576,7 +1567,7 @@ - + @@ -1584,51 +1575,51 @@ + + + + + + + + + set byte %1 - - + + if equal. - + if less(siged <). - + if not greater or equal(siged <). - + if less or equal(siged <=). - + if not greater(siged <=). - - - - - - - - - - + @@ -1636,7 +1627,7 @@ - + @@ -1645,1214 +1636,1223 @@ - + + + + + + + + + + jump %1 - + register %cx zero - + register %ecx zero - + loop with %ecx counter - + loop with %ecx and equal - + loop with %ecx and not equal - + loop with %ecx and not zero - + loop with %ecx and zero - + repeat while %ecx not zero - + load flags into %ah register - - + + pop %eflags from stack - - + + push %eflags onto stack - + store %ah register into flags - + load far pointer using %ds - + load far pointer using %es - + load far pointer using %fs - + load far pointer using %gs - + load far pointer using %ss - + exchange registers . - + extract exponent and significand . - + compare floating-point and set %eflags. - + compare floating-point, set %eflags, and pop. - + compare floating-point and pop. - - + + compare floating-point and pop twice. - + compare integer. - + compare integer and pop. - + test floating-point (compare with 0.0). - + unordered compare floating-point. - + unordered compare floating-point and pop. - + unordered compare floating-point and set %eflags. - + unordered compare floating-point, set %eflags, and pop. - + examine floating-point . - + instructions (floating-point) . - + transcendental instructions perform trigonometric and logarithmic operations on floating-point operands. . - + 3–16 transcendental instructions (floating-point). - + computes 2x-1. - + cosine. - + partial arctangent. - + partial tangent. - + sine. - + sine and cosine. - + computes y * log2x. - + computes y * log2(x+1). - + load +1.0. - + load log2e. - + load log210. - + load log102. - + load loge2. - + load π. - + clear floating-point exception flags after checking for error conditions. - + decrement floating-point register stack pointer. - + free floating-point register. - + increment floating-point register stack pointer. - + initialize floating-point unit after checking error conditions. - + load floating-point unit control word. - + load floating-point unit environment. - + clear floating-point exception flags without checking for error conditions. - + initialize floating-point unit without checking error conditions. - + floating-point no operation. - + save floating-point unit state without checking error conditions. - + store floating-point unit control word without checking error conditions. - + store floating-point unit environment without checking error conditions. - + store floating-point unit status word without checking error conditions. - + restore floating-point unit state. - + save floating-point unit state after checking error conditions. - + store floating-point unit control word after checking error conditions. - + store floating-point unit environment after checking error conditions. - + store floating-point unit status word after checking error conditions. - - + + wait for floating-point unit. - + restore floating-point unit and simd state. - + save floating-point unit and simd state. - + pack doublewords into words with signed saturation. - + pack words into bytes with signed saturation. - + pack words into bytes with unsigned saturation. - + unpack high-order bytes. - + unpack high-order doublewords. - + unpack high-order words. - + unpack low-order bytes. - + unpack low-order doublewords. - + unpack low-order words. - + add packed byte integers. - + add packed doubleword integers. - + add packed signed byte integers with signed saturation. - + add packed signed word integers with signed saturation. - + add packed unsigned byte integers with unsigned saturation. - + add packed unsigned word integers with unsigned saturation. - + add packed word integers. - + multiply and add packed word integers. - + multiply packed signed word integers and store high result. - + multiply packed signed word integers and store low result. - + subtract packed byte integers. - + subtract packed doubleword integers. - + subtract packed signed byte integers with signed saturation. - + subtract packed signed word integers with signed saturation. - + subtract packed unsigned byte integers with unsigned saturation. - + subtract packed unsigned word integers with unsigned saturation. - + subtract packed word integers. - + compare packed bytes for equal. - + compare packed doublewords for equal. - + compare packed words for equal. - + compare packed signed byte integers for greater than. - + compare packed signed doubleword integers for greater than. - + compare packed signed word integers for greater than. - + bitwise logical and. - + bitwise logical and not. - + bitwise logical or. - + bitwise logical xor. - + shift packed doublewords left logical. - + shift packed quadword left logical. - + shift packed words left logical. - + shift packed doublewords right arithmetic. - + shift packed words right arithmetic. - + shift packed doublewords right logical. - + shift packed quadword right logical. - + shift packed words right logical. - + empty mmx state. - + move four aligned packed single-precision floating-point values between xmm registers or memory. - + move two packed single-precision floating-point values from the high quadword of an xmm register to the low quadword of another xmm register. - + move two packed single-precision floating-point values to or from the high quadword of an xmm register or memory. - + move two packed single-precision floating-point values from the low quadword of an xmm register to the high quadword of another xmm register. - + move two packed single-precision floating-point values to or from the low quadword of an xmm register or memory. - + extract sign mask from four packed single-precision floating-point values. - + move scalar single-precision floating-point value between xmm registers or memory. - + move four unaligned packed single-precision floating-point values between xmm registers or memory. - + add packed single-precision floating-point values. - + add scalar single-precision floating-point values. - + divide packed single-precision floating-point values. - + divide scalar single-precision floating-point values. - + return maximum packed single-precision floating-point values. - + return maximum scalar single-precision floating-point values. - + return minimum packed single-precision floating-point values. - + return minimum scalar single-precision floating-point values.. - + multiply packed single-precision floating-point values. - + multiply scalar single-precision floating-point values. - + compute reciprocals of packed single-precision floating-point values. - + compute reciprocal of scalar single-precision floating-point values. - + compute reciprocals of square roots of packed single-precision floating-point values. - + compute reciprocal of square root of scalar single-precision floating-point values. - + compute square roots of packed single-precision floating-point values. - + compute square root of scalar single-precision floating-point values. - + subtract packed single-precision floating-point values. - + subtract scalar single-precision floating-point values. - + compare packed single-precision floating-point values. - + compare scalar single-precision floating-point values. - + perform ordered comparison of scalar single-precision floating-point values and set flags in eflags register. - + perform unordered comparison of scalar single-precision floating-point values and set flags in eflags register. - + perform bitwise logical and not of packed single-precision floating-point values. - + perform bitwise logical and of packed single-precision floating-point values. - + perform bitwise logical or of packed single-precision floating-point values. - + perform bitwise logical xor of packed single-precision floating-point values. - + shuffles values in packed single-precision floating-point operands. - + unpacks and interleaves the two high-order values from two single-precision floating-point operands. - + unpacks and interleaves the two low-order values from two single-precision floating-point operands. - - + + convert packed doubleword integers to packed single-precision floating-point values. - - + + convert packed single-precision floating-point values to packed doubleword integers. - + convert doubleword integer to scalar single-precision floating-point value. - + convert scalar single-precision floating-point value to a doubleword integer. - - + + convert with truncation packed single-precision floating-point values to packed doubleword integers. - + convert with truncation scalar single-precision floating-point value to scalar doubleword integer. - - + + compute average of packed unsigned byte integers. - + extract word. - + insert word. - + maximum of packed signed word integers. - + maximum of packed unsigned byte integers. - + minimum of packed signed word integers. - + minimum of packed unsigned byte integers. - + move byte mask. - + multiply packed unsigned integers and store high result. - + compute sum of absolute differences. - + shuffle packed integer word in mmx register. - + non-temporal store of selected bytes from an mmx register into memory. - + non-temporal store of four packed single-precision floating-point values from an xmm register into memory. - + non-temporal store of quadword from an mmx register into memory. - + prefetch data into non-temporal cache structure and into a location close to the processor. - + prefetch data into all levels of the cache hierarchy. - - + + prefetch data into level 2 cache and higher. - + serialize store operations. - + move two aligned packed double-precision floating-point values between xmm registers and memory. - + move high packed double-precision floating-point value to or from the high quadword of an xmm register and memory. - + move low packed single-precision floating-point value to or from the low quadword of an xmm register and memory. - + extract sign mask from two packed double-precision floating-point values. - + move scalar double-precision floating-point value between xmm registers and memory.. - + move two unaligned packed double-precision floating-point values between xmm registers and memory. - + add packed double-precision floating-point values. - + add scalar double-precision floating-point values. - + divide packed double-precision floating-point values. - + divide scalar double-precision floating-point values. - + return maximum packed double-precision floating-point values. - + return maximum scalar double-precision floating-point value. - + return minimum packed double-precision floating-point values. - + return minimum scalar double-precision floating-point value. - + multiply packed double-precision floating-point values. - + multiply scalar double-precision floating-point values. - + compute packed square roots of packed double-precision floating-point values. - + compute scalar square root of scalar double-precision floating-point value. - + subtract packed double-precision floating-point values. - + subtract scalar double-precision floating-point values. - + perform bitwise logical and not of packed double-precision floating-point values. - + perform bitwise logical and of packed double-precision floating-point values. - + perform bitwise logical or of packed double-precision floating-point values. - + perform bitwise logical xor of packed double-precision floating-point values. - + compare packed double-precision floating-point values. - + compare scalar double-precision floating-point values. - + perform ordered comparison of scalar double-precision floating-point values and set flags in eflags register. - + perform unordered comparison of scalar double-precision floating-point values and set flags in eflags register. - + shuffle values in packed double-precision floating-point operands. - + unpack and interleave the high values from two packed double-precision floating-point operands. - + unpack and interleave the low values from two packed double-precision floating-point operands. - - + + convert packed doubleword integers to packed double-precision floating-point values. - - + + convert packed double-precision floating-point values to packed doubleword integers. - + convert packed double-precision floating-point values to packed single-precision floating-point values. - + convert packed single-precision floating-point values to packed double-precision floating-point values. - + convert scalar double-precision floating-point values to a doubleword integer. - + convert scalar double-precision floating-point values to scalar single-precision floating-point values. - + convert doubleword integer to scalar double-precision floating-point value. - + convert scalar single-precision floating-point values to scalar double-precision floating-point values. - - + + convert with truncation packed double-precision floating-point values to packed doubleword integers. - + convert with truncation scalar double-precision floating-point values to scalar doubleword integers. - + move quadword integer from xmm to mmx registers. - + move aligned double quadword. - + move unaligned double quadword. - + move quadword integer from mmx to xmm registers. - + add packed quadword integers. - + multiply packed unsigned doubleword integers. - + shuffle packed doublewords. - + shuffle packed high words. - + shuffle packed low words. - + shift double quadword left logical. - + shift double quadword right logical. - + subtract packed quadword integers. - + unpack high quadwords. - + unpack low quadwords. - + flushes and invalidates a memory operand and its associated cache line from all levels of the processor's cache hierarchy. - + serializes load operations. - + non-temporal store of selected bytes from an xmm register into memory. - + serializes load and store operations. - + non-temporal store of double quadword from an xmm register into memory. - + non-temporal store of a doubleword from a general-purpose register into memory. - + non-temporal store of two packed double-precision floating-point values from an xmm register into memory. - + improves the performance of spin-wait loops.