Commit graph

704 commits

Author SHA1 Message Date
Ryan Kurtz 0d6c0e3f5d Merge remote-tracking branch 'origin/GP-1212_James_SH4_fixes--SQUASHED' 2021-09-01 09:02:44 -04:00
James 92ac6a332b GP-1212 adjustments to cspec files from code review
GP-1212 SH4 fixes
2021-09-01 08:41:00 -04:00
Ryan Kurtz 977fa00607 Merge remote-tracking branch
'origin/GP-1263_ghidorahrex_PR-3379_zt-chen_superh-movl-fix' (Closes
#3379)
2021-08-31 12:53:49 -04:00
chenzitai 4d2aa982fb Fix bug in movml.l instruction of superh.sinc
When rn_imm_08_11 is 15, it should load the value pointed by r15 to pr
instead of read the value in pr to r15 pointer.
2021-08-28 01:29:07 +01:00
Ryan Kurtz 9593f16585 Merge remote-tracking branch
'origin/GP-1075_ghidorahrex_PR-1672_mumbel_ppcregwrite' (Closes #1672)
2021-08-27 09:41:33 -04:00
Ryan Kurtz 69e4e0656d Merge remote-tracking branch 'origin/patch' 2021-08-24 08:45:57 -04:00
Dan c0739bbede GP-1221: Working out ARM-specific opinion that uses ldefs. 2021-08-24 08:27:22 -04:00
Ryan Kurtz 366d458407 Merge remote-tracking branch 'origin/GP-1043_ghidorahrex_ARM_adcs_sbcs_flag_fix--SQUASHED' 2021-08-17 14:47:40 -04:00
Ryan Kurtz 4645e3ce1e Merge remote-tracking branch
'origin/GP-1220_ghidorahrex_PR-2926_nneonneo_tricore_idx' (Closes #2926)
2021-08-17 14:45:32 -04:00
Ryan Kurtz 38887cfb65 Merge remote-tracking branch
'origin/GP-1219_ghidorahrex_PR-2923_nneonneo_vmx_idx' (Closes #2923)
2021-08-17 14:43:16 -04:00
Ryan Kurtz cf3b859015 Merge remote-tracking branch
'origin/GP-1129_ghidorahrex_PR-3212_niooss-ledger_fix-mips32el-double-constant'
(Closes #3212)
2021-08-17 14:05:10 -04:00
Ryan Kurtz 8e0c298bd3 Merge remote-tracking branch
'origin/GP-1218_ghidorahrex_PR-2927_nneonneo_powerisa_idx' (Closes
#2927)
2021-08-17 14:02:06 -04:00
Ryan Kurtz 54c426f117 Merge remote-tracking branch 'origin/GP-1185_x64_vector_ops--SQUASHED' 2021-08-17 13:57:19 -04:00
ghidorahrex 7130901ed5 Corrected ARM/Thumb adcs/sbcs flag update macros. 2021-08-17 10:47:43 -04:00
James 7b9e9c8ec1 GP-1185 addressing code review comments
GP-1185 added semantics for PSLLDQ
GP-1185 added semantics for several missing x64 vector ops
2021-08-17 09:43:04 -04:00
Ryan Kurtz bd4a5eeb97 GP-0: Fixing typo in pic18.slaspec comment (Closes #782) 2021-08-13 12:22:09 -04:00
Ryan Kurtz 751da99419 Merge remote-tracking branch 'origin/GP-1135_James_sparc_fixes--SQUASHED' 2021-08-13 12:12:24 -04:00
James ea7de5e5af GP-1135 addressing code review, replaces major version change with minor version change
GP-1135 added explanatory comment
GP-1135 fixes to SPARC - updated major version of language
2021-08-13 09:41:38 -04:00
ghidra1 f5615aa240 Merge remote-tracking branch 'origin/patch' 2021-08-04 19:38:26 -04:00
ghidra1 0e81327c46 Merge remote-tracking branch 'origin/GP-1163_RealModeReferences' into patch 2021-08-04 11:05:35 -04:00
ghidra1 6b04eb793f Merge remote-tracking branch 'origin/patch' 2021-08-03 19:26:00 -04:00
ghidorahrex 86a85afd1b GP-1152 Fixed issue with superh fmov/fmov.s decrement/read ordering 2021-08-03 19:21:29 -04:00
ghidra1 40abafd9c8 Merge remote-tracking branch 'origin/patch' 2021-08-02 18:01:17 -04:00
ghidra1 9ee192dbe9 Merge remote-tracking branch 'origin/GP-1167_emteere_VLDST1_fix--SQUASHED' into patch 2021-08-02 18:00:13 -04:00
emteere 3be5defc15 GP-1167 Arm VLD/ST1 instruction semantics fix 2021-08-02 17:59:22 -04:00
ghidra1 ecf196fbea Merge remote-tracking branch 'origin/patch' 2021-08-02 17:37:15 -04:00
ghidra1 0a24532bf7 GP-1110 Refactor ElfDefaultGotPltMarkup.processDynamicPLTGOT implementation, Correct duplicate ELF relocation table processing, and other minor ELF cleanup 2021-08-02 15:58:37 -04:00
Ryan Kurtz f357936a16 Merge remote-tracking branch
'origin/GP-1054_ghidorahrex_PR-3096_agatti_6502-instruction-flags-fix'
(Closes #3096)
2021-07-29 09:51:43 -04:00
caheckman 05f292a5e7 Let segmentop scripts follow natural parameter order 2021-07-27 14:31:12 -04:00
ghidorahrex b3002b78fa Corrected MIPSLE processor tests to run correct suite. 2021-07-13 11:12:56 -04:00
Nicolas Iooss 8194ee34ec fix(mips32el): fix positions of float registers in Little-Endian MIPS32 CPU
When loading double constants using two lwc1 instructions ("Load Word in
Coprocessor 1"), the words are swapped on Little-Endian MIPS machines.

More precisely, when compiling the following function with
mipsel-linux-gnu-gcc -O3 -mfp32 -march=mips1

    double add_0x100000000(double num) {
        return num + 4294967296.0;
    }

The produced assembly (seen with objdump) is:

    00000000 <add_0x100000000>:
       0:    3c1c0000     lui   gp,0x0
       4:    279c0000     addiu gp,gp,0
       8:    0399e021     addu  gp,gp,t9
       c:    8f820000     lw    v0,0(gp)
      10:    00000000     nop
      14:    c4400000     lwc1  $f0,0(v0)     ; load the first 32-bit word
      18:    00000000     nop
      1c:    c4410004     lwc1  $f1,4(v0)     ; load the second 32-bit word
      20:    03e00008     jr    ra
      24:    46206000     add.d $f0,$f12,$f0  ; perform the addition

(the rodata section contains "00000000 0000f041" to encode the constant).

When opening the produced file with Ghidra 10.0, the assembly code is
fine but the decompiler outputs:

    double add_0x100000000(double param_1)
    {
      return param_1 + 5.465589744795806e-315;
    }

5.465589744795806e-315 comes from the decoding of "0000f041 00000000"
instead of "00000000 0000f041": the words were swapped.

Fix this by swapping f0 and f1, f2 and f3... when using a Little-Endian
MIPS machine with 32-bit floating-point registers.
2021-07-12 21:06:44 +02:00
ghidra1 cad6b3c9d9 Merge remote-tracking branch 'origin/patch' 2021-07-07 15:04:15 -04:00
ghidra1 a1bee163d1 GP-1090 added support for a few more SuperH ELF Relocation types 2021-07-07 15:03:34 -04:00
ghidra1 06e3a568bc Merge remote-tracking branch 'origin/patch' 2021-07-06 17:17:55 -04:00
ghidra1 c2652d36d1 GP-1090 Added SuperH/SuperH4 ELF relocation handler and improved performance of ELF filler segment pruning to avoid uneccessary block creation 2021-07-06 17:12:18 -04:00
ghidra1 99d0e98256 Merge remote-tracking branch
'origin/GP-1078_ghidorahrex_ARMEmulation_no_thumb'

Conflicts:
	Ghidra/Processors/ARM/src/main/java/ghidra/program/emulation/ARMEmulateInstructionStateModifier.java
2021-07-06 16:36:01 -04:00
ghidra1 68b7628303 Merge remote-tracking branch 'origin/patch' 2021-07-02 09:21:54 -04:00
ghidra1 879a249fb1 GP-1063 corrected ARMv5 emulation issue 2021-07-02 09:14:56 -04:00
ghidorahrex c3dc05c7bf Corrected issue with ARM emulation for older versions with no thumbmode. 2021-06-30 10:00:57 -04:00
mumbel d61be26b38 [PowerPC] Various SLEIGH fixes
- Ensure registers do not overlap for source and destination registers
- preserve register values when needed
- signed issue comparing unsigned to negative
- unued argument in divZero macro
- stwcx. and stdcx. should set cr bits to continue
- out of order flag setting vs value assignment
- some fixes in setting wrong cr bit
2021-06-25 10:54:45 -05:00
ghidra1 10fa9bcca4 Merge remote-tracking branch 'origin/GP-938_ghidorahrex_PR-3022_veritas501_fix_jic' 2021-06-23 17:54:11 -04:00
ghidra1 00ba983a42 Merge remote-tracking branch 'origin/GP-1029_ghidra1_ElfExternalRelocations--SQUASHED' into Ghidra_10.0 2021-06-09 18:26:43 -04:00
ghidra1 e89a8dcde3 GP-1029 Detect and mark unsupported EXTERNAL data relocation and correct MIPS compound relocation processing bug. 2021-06-09 18:26:05 -04:00
ghidra1 5321fe7dd8 Merge remote-tracking branch
'origin/GP-753_ghidorahrex_PR-2864_VGKintsugi_VGKintsugi-div1' into
Ghidra_10.0 (Closes #2864, Closes #2863)
2021-06-09 17:14:53 -04:00
ghidra1 9fd4af2d7c Merge remote-tracking branch
'origin/GP-954_ghidorahrex_x86_64_stack_push--SQUASHED' into Ghidra_10.0
(Closes #2976)
2021-06-09 11:02:41 -04:00
ghidorahrex a2929e0568 Implemented all combinations of 66/67/REX.W prefixes for CALLF instruction in 64-bit.
Additional CALLF changes
More aggressive changes for x86-64 CALL/RET instructions
Fixed x86-64 call/ret instructions with prefix 67 overrides
2021-06-09 10:22:08 -04:00
VGKintsugi 89f6e9bb7d SuperH: Additional delay slot bug fixes
Review of all delay slot instructions.
2021-06-03 11:39:01 -04:00
ghidra1 f2fc55554a Merge remote-tracking branch
'origin/GP-982_ghidorahrex_x86_rdmsr--SQUASHED' into Ghidra_10.0 (Closes
#3046)
2021-06-03 10:54:29 -04:00
Alessandro Gatti 843a5c2261 Update 6502 flags handling. 2021-06-02 16:34:00 +02:00
ghidra1 0a8db1e0ad Merge remote-tracking branch 'origin/GP-647_ghidorahrex_pic24_return_instructions' into Ghidra_10.0 2021-06-01 10:02:10 -04:00