loongson3_lswc2_format
struct loongson3_lswc2_format loongson3_lswc2_format;
if ((ip->loongson3_lswc2_format.opcode == swc2_op) &&
(ip->loongson3_lswc2_format.ls == 1) &&
(ip->loongson3_lswc2_format.fr == 0) &&
(ip->loongson3_lswc2_format.base == 29)) {
if (ip->loongson3_lswc2_format.rt == 31) {
*poff = ip->loongson3_lswc2_format.offset << 1;
if (ip->loongson3_lswc2_format.rq == 31) {
*poff = (ip->loongson3_lswc2_format.offset << 1) + 1;
if (insn.loongson3_lswc2_format.ls == 0)
if (insn.loongson3_lswc2_format.fr == 0) { /* gssq */
value_next = regs->regs[insn.loongson3_lswc2_format.rq];
value = regs->regs[insn.loongson3_lswc2_format.rt];
value_next = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0);
value = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0);
if (insn.loongson3_lswc2_format.ls == 0)
if (insn.loongson3_lswc2_format.fr == 0) { /* gslq */
regs->regs[insn.loongson3_lswc2_format.rt] = value;
regs->regs[insn.loongson3_lswc2_format.rq] = value_next;
set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0, value);
set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0, value_next);