Skip to content

Instantly share code, notes, and snippets.

MIPSのABIは変だという話をこないだのシステムプログラミング会でしたら、ややザワッとしたので、なにがおかしいのかというのをちょっとまとめてみました。まとめてみて思いましたが、やっぱりMIPSのELFファイルはちょっと変です。

謎のmixed endianフィールド

これが僕は一番ひどいと思ったものです。

ファイルにマルチバイトの数値を保存するときはエンディアンというものが問題になります。たとえば0xBEEFという2バイトの数を保存するときは、1バイト目にBE、2バイト目にEFを書くか、逆順で書くかは、ただの決まり事でどっちでもいいわけですが、書く側と読む側で認識があっていないと困ります。世の中的にはリトルエンディアン(下位バイトから書く)のが主流ですがビッグエンディアンなシステムもあります。

それがですね、MIPSのELFヘッダのr_infoという64ビットのフィールドはリトルエンディアンでもビッグエンディアンでもない謎なエンコーディングになっています。具体的には下位32ビットが最初にリトルエンディアンで書かれていて、ビッグエンディアンでエンコードされた上位32ビットがそれに続くという構成になっています。つまりリトルエンディアンだとABCD EFGH、ビッグエンディアンだとHGFE DCBAとなるところが、MIPSのmixed endianだとEFGH DCBAというふうにファイルに書かれていることになります。

@ericclemmons
ericclemmons / example.md
Last active September 20, 2024 12:46
HTML5 <details> in GitHub

Using <details> in GitHub

Suppose you're opening an issue and there's a lot noisey logs that may be useful.

Rather than wrecking readability, wrap it in a <details> tag!

<details>
 Summary Goes Here
@willnet
willnet / be_a_rails_contributer.md
Last active August 21, 2023 05:44
Railsコントリビュータへの道

これはなに

  • Railsにプルリクストを送るときに知っておくと便利なお作法集
  • Railsにプルリクエストを送りたいけど何から始めたらいいのかわからない人向けの指針

お作法についてはRuby on Rails に貢献する方法 | Rails ガイドを参考にしています。

前提知識

Railsのコードを読むには、最低限次の二つの知識があったほうがよいです

@sinmetal
sinmetal / select-from-auditlog-where-billing.sql
Created February 12, 2016 04:58
BigQuery Audit Logから現在のBillingと、NewBillingの値を算出するQuery
SELECT
protoPayload.authenticationInfo.principalEmail,
protoPayload.serviceData.jobCompletedEvent.job.jobName.jobId,
protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.billingTier,
protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes,
ROUND(((protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes*5)/1000000000000),2) Cost_In_Dollars_Now,
ROUND(((protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes*(5*protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.billingTier))/1000000000000),2) Cost_In_Dollars_New,
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.query,
FROM TABLE_DATE_RANGE(bigquery.cloudaudit_googleapis_com_data_access_, DATE_ADD(CURRENT_TIMESTAMP(), -3, 'DAY'), CURRENT_TIMESTAMP())
WHERE
@masatomo
masatomo / quipper-cto-3.md
Last active February 13, 2018 10:45
CTOより 第3回 「Quipperの開発体制の今」

今回はQuipperの開発体制と進め方について書いてみようと思う。

開発チームの規模

第一回で紹介したように、Quipperは、ロンドン、東京、マニラ、ジャカルタ、メキシコシティにオフィスがあり、そのうちロンドン、東京、マニラが開発拠点になっている。

内訳としては、以下の様な状況だ。

Web iOS/Android Engineering Design Total
@voluntas
voluntas / webrtc_sfu_dev.rst
Last active April 24, 2025 12:04
WebRTC SFU コトハジメ

WebRTC SFU コトハジメ

日時:2023-12-03
作:voluntas
バージョン:2023.1
url:https://voluntas.github.io

この記事が良いと思ったらこの記事に Star をお願いします

require 'benchmark'
class MemberClass
def initialize(a, b, c, d, e, f, g)
@a = a
@b = b
@c = c
@d = d
@e = e
@f = f
@joker1007
joker1007 / esm_drinkup_sake_list.md
Last active December 20, 2015 06:48
Rubykaigi2015 ESM drinkupで提供予定の日本酒一覧

ESM Drinkup で提供予定のお酒一覧

  • いづみ橋 恵 青ラベル 純米吟醸 1800ml
  • いづみ橋 桃色黒とんぼ きもと純米酒 1800ml
  • 七本鎗 無有(むう) 無農薬純米 1800ml
  • 七本鎗 純米吟醸 "吟吹雪" 1800ml
  • 七田 純米吟醸 雄町50 1800ml
  • 三井の寿(みいのことぶき) 純米吟醸 酒未来 福岡県産 1800ml
  • 上喜元 純米 "雄町" 1800ml
  • 作 雅乃智(純米大 吟醸中取り) 1.8L
@Rokt33r
Rokt33r / 3.md
Created November 28, 2015 01:15
Electron x React x Webpack

Electron x React x Webpack

0. Synopsis

今回は次のような問題を解決してみる。

  1. ES6が使いたい
  2. よりアプリらしく作りたい
  3. 変更するとRefresh押すのが面倒いい