Commit Graph

22 Commits

Author SHA1 Message Date
Michael Zimmermann b20085454e ArmPkg/ArmDisassemblerLib: fix check for MSR instruction
GCC8 reported it with the following warning:
ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c: In function 'DisassembleArmInstruction':
ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c:397:30: error: bitwise
comparison always evaluates to false [-Werror=tautological-compare]
if ((OpCode  & 0x0db00000) == 0x03200000) {

This condition tries to be true for both the immediate and the register
version of the MSR instruction. They get identified inside the if-block
using the variable I, which contains the value of bit 25.

The problem with the comparison reported by GCC is that the
bitmask excludes bit 25, while the value requires it to be set to one:
0x0db00000: 0000 11011 0 11 00 00 0000 000000000000
0x03200000: 0000 00110 0 10 00 00 0000 000000000000
                   ^
So the solution is to just don't require that bit to be set, because
it gets checked later using 'I', which results in the following value:
0x01200000: 0000 00010 0 10 00 00 0000 000000000000

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2018-06-07 09:09:07 +02:00
Laszlo Ersek f00ace96f3 ArmPkg/ArmDisassemblerLib: replace AsciiStrCat() with AsciiStrCatS()
AsciiStrCat() is deprecated / disabled under the
DISABLE_NEW_DEPRECATED_INTERFACES feature test macro.

The "Str" variable serves no particular purpose in the MRegList() and
ThumbMRegList() functions; replace it with the pointed-to "mMregListStr" /
"mThumbMregListStr" global variable (as appropriate), so that the new
AsciiStrCatS() calls are as clear as possible.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Michael Zimmermann <sigmaepsilon92@gmail.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=164
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=165
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-25 10:46:40 +02:00
Harry Liebel 01289ec36f ArmPkg/ArmDisassemblerLib: ARMThumb and AArch64 fixes
- Fix ARM Thumb mask operator. This was flagged by a toolchain as warning
  "use of logical '&&' with constant operand [-Wconstant-logical-operand]"
- AArch64 should not be building the ARM32 disassemblers.
- Add a AArch64 build target. The disassembler is still to be
  implemented.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Harry Liebel <Harry.Liebel@arm.com>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16069 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-09 15:57:18 +00:00
Ronald Cron 3402aac7d9 ARM Packages: Removed trailing spaces
Trailing spaces create issue/warning when generating/applying patches.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15833 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-19 13:29:52 +00:00
Olivier Martin 377a32dbed ArmPkg/ArmDisassemblerLib: Fixed logical/bitwise operator confusion
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14955 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-10 16:38:17 +00:00
oliviermartin 619b399888 ArmPkg/DefaultExceptionHandlerLib: Added support to the BASE-type library
This library could be used before the UEFI phases to expose the CPU state
when an unexpected exception interrupt the firmware.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13767 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-28 09:55:48 +00:00
oliviermartin 2a9f433bc9 ArmPkg/ArmDisassemblerLib: Comment out unused variable
'ItFlag' is set but not used. Comment out this variable for future use.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12339 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-13 09:55:01 +00:00
oliviermartin 61afd6a9e2 ArmPkg/ArmDisassemblerLib: Fix register list
'r1' register was missing from the list.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11485 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:24:44 +00:00
hhtian d6ebcab769 Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10444 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-29 12:15:47 +00:00
andrewfish 3a753121f2 Fix bug
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10263 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-17 02:29:58 +00:00
andrewfish 65e2744587 Fix bug in UncachedMemoryAllocationLib, Assembler, make DefaultExceptionHandler lib inc the PC past the faulting instruction to aid debug. Update LR in Exception hanlder, so return address can get updated properly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10018 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-16 23:45:42 +00:00
andrewfish 85e385f42b Added CWD to EfiFileLib. Fix some X64 warnings.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9942 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-07 22:04:03 +00:00
andrewfish f3198cba84 Update input of disasmembler to support IfThen construct. Add prototype dos script to build BeagleBoard.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9936 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-05 06:50:09 +00:00
andrewfish fef5272652 More disasm work.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9932 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-04 18:16:22 +00:00
andrewfish c5c902dad2 More updated
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9926 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-04 04:14:39 +00:00
andrewfish c639c2def9 Fix GCC warnings
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9925 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-03 23:07:29 +00:00
andrewfish eeb78924ec Cleanup to match MdePkg cleanups. More progress on ARM disassembler.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9924 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-03 22:34:43 +00:00
andrewfish b32fecd247 Added Thumb2 loads and stores to Disassmebler
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9916 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-03 03:13:21 +00:00
andrewfish c7ed09e34b Fix thumb2 Branch instruction in disassembler
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9913 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-02 18:59:41 +00:00
andrewfish 7c34497d5d More progress on the disassebler lib
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9909 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-02 04:37:34 +00:00
andrewfish f9f937d243 Move ARM disassembler into a library and out of the exception handler. Add a hook to call the lib from a platform specific EBL command on BeagleBoard.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9903 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-01 18:59:27 +00:00
andrewfish 097bd461c4 Move ARM disassembler into a library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9902 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-01 18:25:18 +00:00