Merge remote-tracking branch 'origin/patch'

This commit is contained in:
Ryan Kurtz
2026-06-16 15:28:15 -04:00
5 changed files with 133 additions and 28 deletions

View File

@@ -4,9 +4,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -240,7 +240,7 @@ class DmgServerProcessManager implements Closeable {
String java =
System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
// optional: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=18200
// optional: -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=18200
try {
Process p = Runtime.getRuntime().exec(
new String[] { java, "-classpath", classPath, "-Xmx" + dmgServerMemoryMB + "m", //need more memory to load and xfer data across pipe

View File

@@ -9,3 +9,4 @@ data/languages/superh.ldefs||GHIDRA||||END|
data/languages/superh.pspec||GHIDRA||||END|
data/languages/superh.sinc||GHIDRA||||END|
data/languages/superh2a.cspec||GHIDRA||||END|
data/manuals/superh.idx||GHIDRA||||END|

View File

@@ -8,6 +8,7 @@
version="1.0"
slafile="sh-2a.sla"
processorspec="superh.pspec"
manualindexfile="../manuals/superh.idx"
id="SuperH:BE:32:SH-2A">
<description>SuperH SH-2A processor 32-bit big-endian</description>
<compiler name="default" spec="superh2a.cspec" id="default"/>
@@ -19,6 +20,7 @@
version="1.0"
slafile="sh-2.sla"
processorspec="superh.pspec"
manualindexfile="../manuals/superh.idx"
id="SuperH:BE:32:SH-2">
<description>SuperH SH-2 processor 32-bit big-endian</description>
<compiler name="default" spec="superh.cspec" id="default"/>
@@ -30,6 +32,7 @@
version="1.0"
slafile="sh-1.sla"
processorspec="superh.pspec"
manualindexfile="../manuals/superh.idx"
id="SuperH:BE:32:SH-1">
<description>SuperH SH-1 processor 32-bit big-endian</description>
<compiler name="default" spec="superh.cspec" id="default"/>

View File

@@ -0,0 +1,95 @@
@ h12p0.pdf[SuperH RISC Engine SH-1/SH-2 Programming Manual September 3, 1996]
add, 64
addc, 65
addv, 66
and, 67
and.b, 67
bf, 69
bf/s, 70
bra, 72
braf, 74
bsr, 76
bsrf, 78
bt, 79
bt/s, 80
clrmac, 82
clrt, 83
cmp/eq, 84
cmp/ge, 84
cmp/gt, 84
cmp/hi, 84
cmp/hs, 84
cmp/pl, 84
cmp/pz, 84
cmp/str, 84
div0s, 88
div0u, 89
div1, 90
dmuls.l, 95
dmulu.l, 97
dt, 99
exts.b, 100
exts.w, 100
extu.b, 101
extu.w, 101
jmp, 102
jsr, 103
ldc, 105
ldc.l, 105
lds, 107
lds.l, 107
mac.l, 109
mac, 112
mac.w, 113
mov, 116
mov.b, 116
mov.w, 116
mov.l, 116
mova, 129
movt, 130
mul.l, 131
muls.w, 132
mulu.w, 133
neg, 134
negc, 135
nop, 136
not, 137
or, 138
or.b, 138
rotcl, 140
rotcr, 141
rotl, 142
rotr, 143
rte, 144
rts, 145
sett, 147
shal, 148
shar, 149
shll, 150
shll2, 151
shll8, 151
shll16, 151
shlr, 153
shlr2, 154
shlr8, 154
shlr16, 154
sleep, 156
stc, 157
stc.l, 157
sts, 159
sts.l, 159
sub, 161
subc, 162
subv, 163
swap, 164
swap.b, 164
swap.w, 164
tas, 165
tas.b, 165
trapa, 166
tst, 167
tst.b, 167
xor, 169
xor.b, 169
xtrct, 171

View File

@@ -17,6 +17,8 @@ package ghidra.server.remote;
import java.io.*;
import java.net.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.security.KeyStore.PrivateKeyEntry;
@@ -27,6 +29,7 @@ import java.util.zip.ZipInputStream;
import javax.rmi.ssl.SslRMIClientSocketFactory;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomStringUtils;
import db.buffers.DataBuffer;
@@ -99,6 +102,7 @@ public class ServerTestUtil {
private static IOThread cmdErr;
private static Process serverProcess;
private static String serverRepositories;
private static Path argsFile;
static {
Runtime.getRuntime().addShutdownHook(new ShutdownHook());
@@ -435,19 +439,15 @@ public class ServerTestUtil {
getTestPkiCACertsPath());
DefaultSSLContextInitializer.initialize(true);
ArrayList<String> argList = new ArrayList<>();
String javaCommand =
System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
argList.add(javaCommand);
List<String> argList = new ArrayList<>();
argList.add("-cp");
argList.add(System.getProperty("java.class.path"));
argList.add("\"" + System.getProperty("java.class.path").replace("\\", "/") + "\"");
argList.add("-Xmx512M");
argList.add("-Xdebug");
argList.add("-Xnoagent");
argList.add("-Djava.compiler=NONE");
argList.add("-Ddb.buffers.DataBuffer.compressedOutput=" + enableCompressionOnServerStart);
argList.add("-D" + DefaultTrustManagerFactory.GHIDRA_CACERTS_PATH_PROPERTY + "=" +
getTestPkiCACertsPath());
@@ -483,25 +483,15 @@ public class ServerTestUtil {
argList.add("-p" + port);
argList.add(dirPath);
String[] args = new String[argList.size()];
argList.toArray(args);
System.out.println();
for (String arg : argList) {
boolean includeQuotes = arg.indexOf(' ') != -1;
if (includeQuotes) {
System.out.print("'");
}
System.out.print(arg);
if (includeQuotes) {
System.out.print("'");
}
System.out.print(" ");
}
System.out.println();
try {
serverProcess = Runtime.getRuntime().exec(args);
// Command line argument is too long on Windows, so use an @arg-file
argsFile =
Files.createTempFile(Application.getUserTempDirectory().toPath(), "args", ".txt");
Files.write(argsFile, argList);
System.out.println(javaCommand + " \"@" + argsFile + "\"");
serverProcess = new ProcessBuilder(javaCommand, "@" + argsFile).start();
serverRepositories = dirPath;
cmdOut = new IOThread(serverProcess.getInputStream());
@@ -658,8 +648,24 @@ public class ServerTestUtil {
serverRepositories = null;
if (testPkiDirectory != null) {
FileUtilities.deleteDir(testPkiDirectory);
testPkiDirectory = null;
try {
FileUtils.deleteDirectory(testPkiDirectory);
}
catch (IOException e) {
// Will likely be an error the next time the test starts
e.printStackTrace();
}
finally {
testPkiDirectory = null;
}
}
}
if (argsFile != null && Files.exists(argsFile)) {
try {
Files.delete(argsFile);
}
catch (IOException e) {
// don't care
}
}
}